Sql Loader (sqlldr) 的用法及错误处理

本文详细介绍了Sql Loader (sqlldr) 的基本用法,包括如何导入数据以及在遇到错误时的处理策略。通过实例解析了sqlldr在处理日期类型数据时的注意事项和常见问题。
摘要由CSDN通过智能技术生成
direct=true 错误处理方法 (关于 Oracle 的数据导入导出及 Sql Loader (sqlldr) 的用法
2009-06-01 12:23
1,
E:\>sqlldr system/dhj123@danghj control=input.ctl log=dhj

SQL*Loader: Release 10.2.0.1.0 - Production on 星期一 6月 1 11:38:10 2009

Copyright (c) 1982, 2005, Oracle. All rights reserved.

SQL*Loader-292: 加载 XML, LOB 或 VARRAY 列时忽略 ROWS 参数
SQL*Loader-951: 调用一次/加载初始化错误
ORA-00942: 表或视图不存在

上面的错误 如果将direct=true 取消,就不存在了。


导致上面错误的原因是 client版本不一致。我就是数据库是9i,client是10g,于是产生错误
2,
报错:SQL*Loader-275:  数据在控制文件中, 但未指定 "INFILE *"。
解决办法: 含序列 , 不能设 direct=true。(控制文件内,去掉direct=true)

3,
direct=true 错误处理方法 :

E:\>sqlldr system/dhj123@danghj control=input.ctl log=dhj

SQL*Loader: Release 9.2.0.1.0 - Production on 星期一 6月 1 13:39:17 2009

Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.

SQL*Loader-926: OCI 错误出现在uldlfca:OCIDirPathDataSave 1用于表 ACTION_C
ORA-26090: 行处于不完整状态
SQL*Loader-2026: 由于无法继续, 加载已中止。


这种错误是 数据格式的问题,处在clob上。 如果没有其他的错误 则在于参数rows上,它是一次性读入的数据。在这个例子中,rows 设置为50万,如果数据行数大于50万则会报错,需要调整rows的大小。rows不指定也可以的。切记啊。

OPTIONS(direct=true,ERRORS=50,skip=0,ROWS=500000, readsize=20971520, bindsize=20971520)
Load data
infile   'test.txt' "str'****@@@@'"
truncate
into   table   action_c   
fields terminated by '@#$'  optionally enclosed by '%%%%%'
(ACTION_ID,
Time DATE 'YYYY-MM-DD HH24:MI:SS',
TBSN,
CSN,
SYSTEM,
BLOCK,
UPID,
AGENT,
OFFICE,
UGR,
TXNID,
PID,
STEP DATE 'YYYY-MM-DD HH24:MI:SS',
IDNBR,
HOST,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值