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)",
我正在尝试使用 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)",