我在使用sql loader加载一组csv数据时遇到问题。我有一个包含数据的控制文件,我已经在oracle 10g中创建了目标表。
当我运行以下命令时,
C:\Users\lee\sqlloadertest> sqlldr scott/tiger@MYDB,CONTROL='Ad.ctl'
它产生
SQL*Loader: Release 10.2.0.3.0 - Production on Tue Sep 11 17:46:43 2012
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Commit point reached - logical record count 52
当我检查地址表时,它显示没有创建任何行,这意味着该表未填充
答案 0 :(得分:0)
您可以尝试使用log选项运行sql loader并查看实际错误。
这是完整的格式。
C:\Users\lee\sqlloadertest> sqlldr scott/tiger@MYDB CONTROL='Ad.ctl' log=ad.log bad=ad.bad
我的猜测是记录都失败并出现错误,通常就是这种情况。
答案 1 :(得分:0)
尝试编辑ctl
文件 -
LOAD DATA
INFILE 'Masterpiece.csv' BADFILE 'Masterpiece.bad' DISCARDFILE 'Masterpiece.dis'
APPEND
INTO TABLE ADDRESS
fields terminated by "," optionally enclosed by '"'
(ID, LOCATORDESIGNATOR, LOCATORNAME, LOCATOR, THOROUGHFARE, ADDRESSAREA)
CSV
文件(Win格式)有时在字段周围包含"
。使用以下命令运行ctl
文件。
sqlldr scott/tiger@MYDB CONTROL='Ad.ctl' LOG='Ad.log'
检查bad
和dis
文件是否有错误和丢弃的记录。