2つの日付を比較し、2つの日付の差がa以下になるとレコードを削除するトリガーをOracleで作成しようとしています。一定の価値。私は 'DD-MON-YYYY HH24MI'の形式で完全な日付の値を持っていて、次に2番目の日付の値として 'DD-MON-YYYY'の値と 'HH24MI'の値を連結したいと思います。Oracle/SQL:日付と時刻を1つの日付の値に連結するときの数値書式が無効
問題は、to_charを使用して日付と時刻の値を連結し、その戻り値でto_dateを使用すると、ORA-01481の数値形式のエラーが無効になります。トリガー自体からの関連する行は以下の通りです。誰もがこれで私を助けることができる場合、それは非常に感謝されます!
CREATE OR REPLACE TRIGGER dateTrig
...
DECLARE
day date;
ftime date;
CURSOR c_table1 IS SELECT ...;
BEGIN
FOR entry IN c_table1 LOOP
day := to_date(entry.fdate);
ftime := to_date(to_char(day, 'DD-MON-YYYY') || ' ' || to_char(entry.dtime, 'HH24MI'), 'DD-MON-YYYY HH24MI'); -- this is the line that is causing the error
dbms_output.put_line(day || ', ' || ftime);
END LOOP;
END;
/
DTIME列のデータ型は?あなたのコードはそれが日付だと仮定します。しかし、私はそれが疑わしい。 – Codo
DTIMEは、午後4時には '1600'、午後3時半には '1530'のように見えるvarchar(4)です。 – jsutton