查看我的 php 错误日志,我经常看到与特定存储过程相关的 ORA-01858 错误条目。根据我对这个错误代码的搜索,它总是将错误的输入传递给 TO_CHAR() 函数的结果。问题是,有问题的存储过程只有一个 TO_CHAR() 函数,而我传递的值实际上是硬编码的。(这是 NVL() 的第二个参数。代码如下:
ROUND(SYSDATE - NVL(PENDING_CLOSE_DT, TO_DATE('2000-01-01','YYYY-MM-DD')), 7) AS PENDING_DURATION
由于这是此过程中 TO_DATE() 的唯一用途,为什么我会收到 ORA-01858 错误?还有其他一些情况可以产生这样的错误吗?部分问题是这种情况有时会发生。一般来说,使用这个存储过程的程序可以正常工作,我知道这一点的唯一原因是检查错误日志。