我们一直在研究一些遗留代码,并找到了检查 date(VARCHAR2) 是否以正确的格式“YYYY-MM-DD HH24:MI:SS”传递的函数。它使用简单的构造
function IS_CORRECT_TIMESTAMP(P_EVENT_TIMESTAMP varchar2)
return number is
V_TIMESTAMP timestamp;
begin
select TO_TIMESTAMP(NVL(P_EVENT_TIMESTAMP, '1'),
'YYYY-MM-DD HH24:MI:SS')
into V_TIMESTAMP
from DUAL;
return 1;
exception
when others then
return - 1;
end;
问题是,当我传递例如“22-AUG-13”的值时,它不会引发任何异常。这可能是什么原因?
感谢您的想法。