在较大的查询

时间:2017-05-09 16:33:43

标签: oracle oracle-sqldeveloper

我是使用Oracle SQL Developer的新手,遇到了一些问题。当我单独运行以下较小的示例查询时,它运行良好:

 SELECT ((SYSDATE - TO_DATE(table1.a_certain_date_field, 'DD-MON-RR')) / 365.0)
 FROM &a_table
 WHERE rownum < 5 AND
 ((SYSDATE - TO_DATE(table1.a_certain_date_field, 'DD-MON-RR')) > 365.0);

但是一旦我将其嵌入到更大的查询中,我就得到ORA-01861 error: literal does not match format string。例如,当我将其包含在其他WHERE条件中时,例如

    ...AND NOT (adr.state = 'WA')                                                                                                         
  AND
((SYSDATE - TO_DATE(table1.a_certain_date_field, 'DD-MON-RR')) > 365.0)...[more conditions]

出现这种情况的原因是什么?我的猜测是表格字段改变了日期输入的方式(即从DD-MM-YYYY到DD-MON-RR),并且导致抛出此错误,但不会同样抛出类似的较小的示例代码中的错误?

1 个答案:

答案 0 :(得分:1)

这总是(根据我的经验)数据问题。您可以尝试通过查看数据的各个子集来缩小范围,以找出导致它的行/行。