我有一个CSV文件,其中包含世界着名歌手的列表。我想使用SQLLDR将此文件导入Oracle DB。
包含 singers.csv 的是:
number,name,follower
1,Prince,100
2,Ludacris,100
3,Bruno Mars,100
4,Madonna,100
5,Miley,Cyrus,100
6,Britney,Spears,100
control.ctl
OPTIONS (SKIP=0, errors=12000)
LOAD DATA
APPEND INTO TABLE singers_tb
FIELDS TERMINATED BY ","
optionally enclosed by '"'
TRAILING NULLCOLS
(number ":number", name "TRIM (:name)",follower ":follower")
singers_tb
create singers_tb (
number varchar2(3),
name varchar2(255),
follower number
)
错误消息
Record 5: Rejected - Error on table singers_tb, column FOLLOWER.
ORA-01722: invalid number
Record 6: Rejected - Error on table singers_tb, column FOLLOWER.
ORA-01722: invalid number
我知道错误的原因是Britney,Spears
和Miley,Cyrus
上的逗号(,)。
如果我仍想使用FIELDS TERMINATED BY ","
?
非常感谢您的建议。
答案 0 :(得分:0)
您的控制文件已有:optionally enclosed by '"'
。
确保数据提供程序确实提供包含分隔符的任何字段到达时都用双引号括起来。