sqlldr 导入表问题

[复制链接]
查看11 | 回复9 | 2005-2-28 12:57:00 | 显示全部楼层 |阅读模式
用sqlldr 把一个txt文件导入表,这个txt文件较大有2.3G
从大概1000多万行,当导到4000多万行时,
就停了,不导了,oracle客户端也连不上了,这是什么原因??
要做什么性能上的调整吗?(应该不是数据的问题,已有设了bad=..,skip=1参数)
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
看数据库的日志有没有抱错
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
2.3G的文本文件,太大了吧!
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
日志文件是空的,到底为什么导了一半就停了??
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
我导过1g多的文件没有报错,会不会是你的输入文件的错误数达到最大了所以就不导入了,但是客户端连不上就很奇怪了。
最初由 wertree 发布
[B]日志文件是空的,到底为什么导了一半就停了?? [/B]

回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
客户段连接不上,是不是DB 出了什么异常,首先检查一下DB 的alert_sid.ora ,看看有没有什么异常错误,其次看看sqlldr 的日志情况,没有倒完,估计不会写日志,检查一下bad 文件,看看有没有skip 的数据行,你的sqlldr 的命令是什么,贴出来看看有没有优化的可能
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
sqlldr 的命令如下:
sqlldr abc/abc@oracle control=f:/data/001.ctl data=f:/data/001.txt bad=f:/data/bad/001.bad log=f:/data/log/001.log skip=1

001.ctl控制文件如下:
load data
insert into table tabc
fields terminated by '|'
(



nbr
,

code ,

canbr ,

trunk_in_nbr ,

trunk_out_nbr,

start_date ,

ctual_cyc_seq_nbr ,

err_proc_id
,

state

.....// ( 注:还有其它字段)

created_dateDate "yyyy-mm-dd hh24:mi:ss"
)
bad 文件,怎么看有没有skip 的数据行??
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
应该是在错误的log中,好像默认是50行。
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
看看alter{sid}警告文件,是不是忙着切换日志,忙着归档或者归档的磁盘满了等等,都有可能导致数据库的停住,看看DB的日志应该能找到问题.
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
我的sqlldr 的命令是不是还要加什么参数?
sqlldr 的命令如下:
sqlldr abc/abc@oracle control=f:/data/001.ctl data=f:/data/001.txt bad=f:/data/bad/001.bad log=f:/data/log/001.log skip=1
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行