日志文件中的致命错误消息

时间:2012-09-12 08:11:19

标签: sql oracle sql-loader

我在我的日志文件中生成了一条主要错误消息,因为我尝试使用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)

用于发布长期错误的应用程序,因为它是一个新手并且与之相混淆。

2 个答案:

答案 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字段,以便字段规范与实际数据对齐。