sqluldr2 报错ora-24345: A Truncation or null fetch error occurred
今天在使用sqluldr工具导出数据的时候,发现了该表存在一个clob字段,然后导出时报错ora-24345: A Truncation or null fetch error occurred,
经查阅资料发现说是默认的buffer太小,不够存放大量数据
然后设置safe=yes,但是问题依旧得不到解决,然后我去探查了该clob字段长度,发现数据非常不均匀,字段长度超过10000的数据有几百行,剩余的几十万行数据的clob字段长度只有100左右。
然后我对于此的理解是,他在导出时,可能会认为该clob字段默认buffer为100,然后因为这几百条超过10000长度的数据,导致数据无法导出。
对此我将该表拆分成了两个sql,分别进行导出:
select * from table_name where length(clob字段)>=10000
select * from table_name where length(clob字段) <10000
sqluldr2.bin user=hr/'hr123'@zx query="select * from table_name where length(clob字段)>=10000" field='^' record=0X12 safe=yes rows= 1000 charset=AL32UTF8 file="clob.txt" log="clob.log"
sqluldr2.bin user=hr/'hr123'@zx query="select * from table_name where length(clob字段) <10000" field='^' record=0X12 safe=yes rows= 1000 charset=AL32UTF8 file="clob1.txt" log="clob1.log"
此时再合并该两个txt文件后,导出完成。