Просматривая мои журналы ошибок 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? Есть ли какой-то другой сценарий, где я могу генерировать такую ошибку? Часть проблемы в том, что это случается иногда. В общем, программа, использующая эту хранимую процедуру, работает нормально, и единственная причина, по которой я об этом знаю, - это проверка журнала ошибок.