いくつかのレガシー コードを調べたところ、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」の値を渡すと、例外がスローされないことです。この理由は何ですか?
アイデアをありがとう。