私は2つの日付パラメータを取る関数を持っています:
CREATE OR REPLACE FUNCTION date_equal
(
date1 IN DATE,
date2 IN DATE
)
RETURN NUMBER IS
equal BOOLEAN;
BEGIN
equal := NVL(date1, '1999-01-01') = NVL(date2, '1999-01-01');
IF equal THEN
RETURN 1;
ELSE
RETURN 0;
END IF;
END date_equal;
/
ここで、関数のデータを提供するテーブルで select を実行すると、正常に実行されます。
SELECT TO_DATE(some_date, 'YYYY-MM-DD') FROM tbl
しかし、関数呼び出しでそれを使用しようとすると失敗します:
SELECT date_equal(TO_DATE(some_date, 'YYYY-MM-DD'), TO_DATE(some_date, 'YYYY-MM-DD')) FROM tbl
エラーメッセージは「リテラルがフォーマット文字列と一致しません」です。なぜそれが起こるのか誰か知っていますか?