0

当我尝试使用 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)

以新手的身份发布长错误并对此感到困惑。

4

2 回答 2

1

似乎问题在于您的 csv 文件中的引号。

我在这里找到了一篇关于如何加载此类文件的文章。

LOAD DATA
APPEND INTO TABLE testing
FIELDS TERMINATED BY ','
TRAILING NULLCOLS
(
  a
 ,b  "replace ( :b ,'"' ,'' )"
)
于 2012-09-12T12:42:16.060 回答
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 字段,以便字段规范与实际数据一致。

于 2012-09-12T15:55:44.907 回答