我想将csv文件导入oracle数据库。 我的csv看起来像这样:
表A:有时包含2行或3行或空。我想导入开始表B.所以我的control.ctl是:
echo OPTIONS (SKIP=5, errors=12000)
LOAD DATA
APPEND INTO TABLE xyz
when id <> '' and sales = ''
FIELDS TERMINATED BY X'09'
optionally enclosed by '"'
TRAILING NULLCOLS
(id "TRIM (:id)",
customer "TRIM (:customer)",
qty "TRIM (:qty)",
sales filler)
xyz表是:
create xyz (
id varchar2(3),
customer varchar2(255),
qty varchar2(5)
)
为什么没有存储数据?
答案 0 :(得分:0)
在Oracle中,空字符串被视为null
。并且null
永远不等于或不等于任何其他值,包括null
。您需要使用is null
或is not null
来查找null
值。
谓词
when id <> '' and sales = ''
永远不可能是真的。 id
值不等于null
,且sales
值不等于null
。也许你想要
when id is not null and sales is null
但是,如果您只是想避免加载空白行,我希望您的when
条款只能在id
而不是sales
上。