SQL*Loader スクリプト用の制御ファイルを作成しようとしています。NOT NULL として定義されている日付列があります。ファイルからの受信値が空白の場合、現在の日付を使用するようにスクリプトを設定する必要があります。私はいくつかの方法を試しました - 以下にいくつかの例を示します - しかし、SQL ローダーを実行するとエラーが発生し続けますが、デュアルから選択するとフォーマットは機能します
SQLLoader でどのように設定する必要がありますか?
PROGRAM_CHANGE_TS POSITION(37:47) DATE "decode(length(trim(:PROGRAM_CHANGE_TS)), 11, to_date(:PROGRAM_CHANGE_TS,'yymmddHH24:MI'),to_date(sysdate,'yymmddHH24:MI'))",
PROGRAM_CHANGE_TS POSITION(37:47) DATE "NVL(Decode(:PROGRAM_CHANGE_TS,'00/00/0000',TO_DATE('01/01/2010','dd/mm/yyyy'),TO_DATE(:PROGRAM_CHANGE_TS,'dd/mm/yyyy')),TO_DATE('01/01/2010','dd/mm/yyyy'))",
oracle デコード例 ORA-00907: 右括弧がありません
select decode(length(trim(:PROGRAM_CHANGE_TS)), 11, to_date(:PROGRAM_CHANGE_TS,'yymmddHH24:MI'),to_date(sysdate,'yymmddHH24:MI')) from dual
また
select NVL(Decode(:PROGRAM_CHANGE_TS,'00/00/0000',TO_DATE('01/01/2010','dd/mm/yyyy'),TO_DATE(:PROGRAM_CHANGE_TS,'dd/mm/yyyy')),TO_DATE('01/01/2010','dd/mm/yyyy')) from dual
作品
SQL ローダー制御ファイルから使用するには、どのような変更を加える必要がありますか?