【发布时间】:2012-04-24 10:08:34
【问题描述】:
我有一个非常简单的查询,它随机返回重复的行。有时我没有重复,有时我有重复的结果集,重复的记录每次都不同。我正在对冻结的数据库运行查询(数据不会改变)。我的 Oracle 版本是 11g。
我在某个日期只有一个过滤器(在 WHERE 子句中):to_char(date,'yyyy/mm') > = '2012/03'。
任何帮助将不胜感激。 感谢您的关注。 最好的问候。
完成查询:
select distinct
B.ORD_V_COD_ROWID as c1,
B.ORD_D_DAT_INSERITO_RIFIUTATO as c2,
B.ORD_D_DAT_RIFIUTO_SIS as c3
from
NRFTF_ORD_ORDINE A,
NRFTF_COR_ORDINI_RDS B
where (A.ORD_N_DWH_NUM_ORDINE = B.ORD_N_DWH_NUM_ORDINE
and B.ORD_V_COD_CAUSALE = 'CLIENTE NON AFFIDABILE'
and B.ORD_V_COD_STATO = 'RIFIUTATO'
and B.RDS_C_DWH_FLG_CANCELLAZIONE = '0'
and B.ORD_C_DWH_FLG_CANCELLAZIONE = '0'
and B.ORD_V_COD_CAUSALE = 'CLIENTE NON AFFIDABILE'
and B.PER_NAME_MONTH >= '2012/03'
and (B.ORD_D_DAT_RIFIUTO_SIS >= TO_DATE('2012-03-22 00:00:00' , 'YYYY-MM-DD HH24:MI:SS')
or B.ORD_D_DAT_INSERITO_RIFIUTATO >= TO_DATE('2012-03-22 00:00:00' , 'YYYY-MM-DD HH24:MI:SS'))
and TO_CHAR (A.ord_d_dat_creazione,'YYYY/MM') >= '2012/03' )
order by c1, c2, c3
【问题讨论】:
-
什么查询?显示所有查询文本,而不是部分
-
编辑您的问题以显示查询(不要放在评论中...)
-
B.PER_NAME_MONTH 是一个 varchar2,对吧?
-
是的,B.PER_NAME_MONTH 是存储在表 B 上的一个字段,作为 varchar2。我想知道我是否应该检查 db 上的 trobles,寻找 SGA 的大小或其他东西。感谢您的回答和关注..
-
您的数据库是什么版本的 11g,包括补丁集?如果您从查询中得到重复的结果/错误的结果,这听起来像是一个 oracle 错误。