【发布时间】:2016-09-08 11:00:15
【问题描述】:
我需要将数据从分隔文件加载到 Oracle 12c。
我的 Ctl 文件如下所示:
OPTIONS (skip=2,rows=1000, bindsize=100000, readsize=100000, discardmax=1, silent=header,feedback)
load data
CHARACTERSET UTF8
insert into table XYZ
WHEN FIELD2 <> ''
fields terminated by '^' optionally enclosed by ','
trailing nullcols
(
FIELD1 filler,
FIELD2,
FIELD3,
MODIFIED_DATE "SYSDATE"
)
在我的数据文件中,我希望 FIELD2 和 FIELD3 至少有一行为 NULL。
假设我的数据文件是:
ABC^DEF^GHI
ABC^^
我的第二条记录按预期被丢弃,并带有以下消息:
1 行已成功加载。
0 行因数据错误而未加载。
1 行未加载,因为所有 WHEN 子句均失败。
0 行未加载,因为所有字段均为空。
但是,sqlldr 退出代码仍然是 2 ,导致我的脚本失败。 有没有办法加载有效记录(FIELD2 不为空的行)并优雅地成功退出?
非常感谢任何帮助。
谢谢。
【问题讨论】:
-
假设我的数据文件是:ABC^DEF^GHI ABC^^
标签: sql-loader