Chinaunix首页 | 论坛 | 博客
  • 博客访问: 25931
  • 博文数量: 10
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 63
  • 用 户 组: 普通用户
  • 注册时间: 2015-03-30 11:37
文章分类

全部博文(10)

文章存档

2017年(1)

2015年(9)

我的朋友

分类: 数据库开发技术

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)

阅读(1718) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~