sqlldr时候Field in data file exceeds maximum length

测试部使用sqlldr入库的时候遇到一个奇怪的问题 ,明明字段长度是256,数据文件中的列长度也是256,却报Field in data file exceeds maximum length问题,后来试着将字段长度改成280\300\1300照样导不进去,觉得很奇怪


   查询MOS找到了答案:

fix:

Change controlfile to define column as CHAR ('length') 

SQL*Loader does not have the concept different character datatypes.  Incoming 
character data is assumed to be type char with a default length of 255. Thus, 
if the character string in the source Data File is more than 255 characters you 
will receive this error.   


   原来sqlldr引擎在检验数据文件的时候,遇到字符类型的时候,默认不能超过255,超过了就报错,如果想load超过255的字符,需要在控制文件中指明:

adress char(256),

   


   可以看出sqlldr引擎的数据校验只是基于规则的校验,不会考虑实际表字段,这可能也是基于性能的一个考虑


版权声明:本文为DBAdream原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。