我正在尝试为 SQL*Loader 脚本创建一个控制文件。我有一个定义为 NOT NULL 的日期列。如果来自文件的传入值为空白,我需要设置脚本以使用当前日期。我尝试了几种方法-下面的一些示例-但是在运行 sql loader 时我一直遇到错误,但是如果我确实从 dual 中进行选择,则该格式有效
我需要如何在 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 加载程序控制文件中使用它?