其实txt文件是用sqlserver的bcp -c -T生成的,默认是制表符tab分隔。
再用sqlldr导入oracle,发现有部分字段因为本身含有制表符或回车,导致导入时出错。这种情况一般怎么处理的?用sqlserver的话好像可以用bcp -n -T用那个本机格式来规避,
oracle这个sqlldr不知怎么处理了搜索了一下,有人说先替换回车等?
有好几个地方也有人问,但都是提问的说自己找到方法了,然后又不说他的解决方法
http://topic.csdn.net/u/20080912/09/000ddf3c-a01b-4195-b2d8-e72703451972.html?764648920
http://www.itpub.net/thread-420564-1-1.html
楼主都说:问题已经解决。谢谢大家
结果下面好些人在问:我也碰到同样的问题,楼主是怎么解决的?

解决方案 »

  1.   

    试了下 continueif last !='n'
    这个选项能导入,不报错,但会删除所有的回车换行 
      

  2.   

    当使用sqlldr加载很长的字符串(超过4000)到表中的clob类型中时,老是报错: 数据文件的字段超出最大长度.查找相关资料后得知,sqlldr每次读入文件中数据流的数据类型默认为CHAR ,长度为 255 .所以只要超过255字符的段都会报这个错.解决方法很简单,在控制文件中字段后添加上char(1000000)
    当然1000000只是随便用的一个大数字,只要保证加载的长度不超这个数字就成