2

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

アイデアをありがとう。

4

1 に答える 1