1

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

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

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

4

2 回答 2

1

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

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表的列在哪里

于 2016-12-29T14:40:31.710 回答
0

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

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

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

START_DATE "(select sysdate from dual)", 
于 2016-12-29T16:13:11.203 回答