Oracle 12c - SQL * 加载程序条件加载

Oracle 12c - SQL * Loader conditional load

我正在尝试使用 SQL 加载程序,在将数据插入表时,我需要检查一些条件并插入数据。
示例:

CASE COLUMNA  
WHEN 'NULL'
   -- INSERT NULL VALUE IN IT INSTEAD OF STRING 'NULL'  
ELSE  
   -- INSERT THE DATA AS IS
END

我们可以在 SQL Loader 控制文件中使用这些 case 语句吗?在任何地方都找不到很好的例子。

尝试在您的控制文件中添加条件,例如:

load data
  APPEND INTO TABLE XXX
  fields terminated by "\t"
  TRAILING NULLCOLS
  ( --Condition which you can add.
    START_DATE "CASE WHEN length(:START_DATE ) < 10 THEN null ELSE :START_DATE END"      

  ) 

其中 START_DATE 是 table

的列

仅供参考,对于更复杂的测试或其他可以重复使用的需求,您还可以调用 return 值的函数或包成员:

...
START_DATE "UTILITY_PKG.VALIDATE_DATE(:START_DATE)" 

或查询(必须用括号括起来):

START_DATE "(select sysdate from dual)",