ORA-01861 当 运行 在较大的查询中时,文字不匹配格式错误
ORA-01861 literal does not match format error when running within larger query
我是使用 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]
发生这种情况的原因有哪些?我的猜测是 table 字段在某些时候改变了日期的输入方式(即从 DD-MM-YYYY 到 DD-MON-RR)并导致抛出此错误,但不会接受同样在较小的示例代码中抛出类似的错误?
这始终是(根据我的经验)数据问题。您可以尝试通过查看数据的各个子集来缩小范围,找出是哪个 row/rows 导致了它。
我是使用 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]
发生这种情况的原因有哪些?我的猜测是 table 字段在某些时候改变了日期的输入方式(即从 DD-MM-YYYY 到 DD-MON-RR)并导致抛出此错误,但不会接受同样在较小的示例代码中抛出类似的错误?
这始终是(根据我的经验)数据问题。您可以尝试通过查看数据的各个子集来缩小范围,找出是哪个 row/rows 导致了它。