我是使用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),并且导致抛出此错误,但不会同样抛出类似的较小的示例代码中的错误?
答案 0 :(得分:1)
这总是(根据我的经验)数据问题。您可以尝试通过查看数据的各个子集来缩小范围,以找出导致它的行/行。