我在我的日志文件中生成了一条主要错误消息,因为我尝试使用sql loader
加载我用这个
创建了一个名为Ad2.ctl的控制文件和
的加载命令sqlldr scott/tiger@MYDB CONTROL='Ad2.ctl' LOG='Ad2.log'
该文件的内容包括以下示例
运行sql loader命令后,我得到一个很长的错误列表,并且没有填充ADDRESS表。
错误包括以下
SQL*Loader: Release 10.2.0.3.0 - Production on Wed Sep 12 08:47:28 2012
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Control File: Ad2.ctl
Data File: Abbeyruntest2.csv
Bad File: Abbeyruntest2.bad
Discard File: Abbeyruntest2.dis
(Allow all discards)
Number to load: ALL
Number to skip: 0
Errors allowed: 50
Bind array: 64 rows, maximum of 256000 bytes
Continuation: none specified
Path used: Conventional
Table ADDRESS, loaded from every logical record.
Insert option in effect for this table: APPEND
Record 2: Rejected - Error on table ADDRESS, column ADDRESSAREA.
Column not found before end of logical record (use TRAILING NULLCOLS)
Record 3: Rejected - Error on table ADDRESS, column ADDRESSAREA.
Column not found before end of logical record (use TRAILING NULLCOLS)
用于发布长期错误的应用程序,因为它是一个新手并且与之相混淆。
答案 0 :(得分:1)
问题似乎在于csv文件中的引号。
我找到了一篇关于如何加载此类文件的文章here。
LOAD DATA
APPEND INTO TABLE testing
FIELDS TERMINATED BY ','
TRAILING NULLCOLS
(
a
,b "replace ( :b ,'"' ,'' )"
)
答案 1 :(得分:0)
您的CSV文件与控制文件完全不对应。您的CSV文件中有太多逗号 - 根据FIELDS TERMINATED BY','子句,每个逗号分隔一个新字段。我这样修改了你的数据,它起作用了:
1,FLAT, ,1 ,Abesinia Passage ,
2,Flat e-1,Edmund's Home ,1a ,Arena's Palace Lane,
3,flat 1,`Anderson's House',11a, ,Laguna Estate
如果您无法修改CSV文件,则需要在控制文件中定义FILLER字段,以便字段规范与实际数据对齐。