分类: 数据库开发技术
2015-04-27 14:22:07
使用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)