【sqlldr】 “Field in data file exceeds maximum length ”解决办法

1800阅读 0评论2015-04-27 yangzhiqu
分类:数据库开发技术

使用sqlldr导数时出现如下错误:

" Record 1: Rejected - Error on table PC_PLANNAME, column PLANNAME.
Field in data file exceeds maximum length "

上网查了一下找到原因了。

        原来表中定义的字段 PLANNAME 虽然是VARCHAR(2000);

        但是用控制文件(CTL)中默认为是char类型。

        所以,当该列数据长度超过255(char类型长度)时会提示出错。

解决办法:

      将CTL文件中的 "PLANNAME " 改为  "PLANNAME  char(2000)" 即可!注意是  char 类型 而不是 varchar类型!


例子:

LOAD DATA
INFILE tst.dat
BADFILE tbl_lstradepkg_inf_0426.bad
DISCARDFILE tbl_lstradepkg_inf_0426.disc
DISCARDMAX 10
APPEND
INTO TABLE tbl_lstradepkg_inf
FIELDS TERMINATED BY ','
( RETSERIAL,TRDATE,ITIME,STATUS,CHANNELID,MSGTYPE,F2,F3,F4,F11,F12,F13,F14,F15,F22,F23,F25,F26,F32,F35,F36,F37,F38,F39,F40,F41,F42,F
44,F48,F49,F52,F53,F54,F55 char(1400),F58,F60,F61,F62 char(1800),F63)

上一篇:第一篇博文
下一篇:MFC的AOD编程在win8下没问题 xp下报异常