从命令提示符处使用SQL Loader加载数据时出错

问题描述 投票:0回答:2

我在使用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

当我检查地址表时,它显示没有创建任何行,这意味着表没有填充

oracle sql-loader
2个回答
0
投票

您可以尝试使用log选项运行sql loader并查看实际错误。

这是完整的格式。

C:\Users\lee\sqlloadertest> sqlldr scott/tiger@MYDB CONTROL='Ad.ctl' log=ad.log bad=ad.bad

我的猜测是记录都失败并出现错误,通常就是这种情况。


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'

检查baddis文件是否有错误和丢弃的记录。

© www.soinside.com 2019 - 2024. All rights reserved.