`
sjk2013
  • 浏览: 2186048 次
文章分类
社区版块
存档分类
最新评论

关于SQLLDR的VAR参数用法

 
阅读更多

在学习使用SQLLDR的VAR参数时,发现总是报如下错误:

SQL*Loader-501:  无法读取文件 (ldr_case2.dat)
SQL*Loader-563:  VAR 记录的长度错误
SQL*Loader-509:  系统错误: 操作成功完成。
SQL*Loader-2026:  加载因 SQL 加载程序无法继续而被终止。


很是郁闷。。。

我的控制文件是这样的:

Load DATA
INFILE 'D:\ldr_case2.dat' "var 3"
truncate INTO TABLE BONUS
FIELDS TERMINATED BY ","
(ENAME,JOB)

数据文件ldr_case2.date内容如下:


009hello,cd,010world,im,
012my,name is,
------------------------------------------------------

最后发现这个VAR参数是严格按照字节数控制录入长度的。譬如说:var 3,选取前3个字节为长度控制字节。那么

首先取数据为9个字节即hello,cd,然后注意再读取3个字节即为长度控制字节,这里是010,读取10个字节长数据.那么就是读world,im,\r(回车),再读3个字节的时候就会出错,因为在window下一个回车对应\r\n(回车换行2个字节),linux下仅对应一个\n.所以更改ldr_case2.date内容如下后即正常.

009hello,cd,010world,im
011my,name is,

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics