我正在尝试使用 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 语句吗?在任何地方都找不到很好的例子。
我正在尝试使用 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 语句吗?在任何地方都找不到很好的例子。
尝试在您的控制文件中添加代码,例如:
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
表的列在哪里
仅供参考,对于更复杂的测试或您可以重用的其他需求,您还可以调用返回值的函数或包成员:
...
START_DATE "UTILITY_PKG.VALIDATE_DATE(:START_DATE)"
或查询(必须用括号括起来):
START_DATE "(select sysdate from dual)",