我已经使用关联的DB2控制文件获得了DB2数据导出(大约7 GB)。我的目标是将所有数据上传到Oracle数据库。我几乎在这方面取得了成功 - 我将控制文件转换为SQL * Loader CTL文件的路线,它大部分工作。将DB2数据上传到Oracle数据库 - 修复垃圾数据
但是,我发现一些数据文件在某些列中包含终止符和垃圾数据,这些列被加载到数据库中,导致与该数据匹配的明显问题。例如,列应该包含'9930027130',将显示长度(trim(col))= 14:4字节的垃圾数据。
我的问题是,从系统中消除这些垃圾数据的最佳方法是什么?我希望这只是CTL文件的一个简单补充,它允许它用空格替换垃圾 - 否则我只能想到编写一个分析数据的脚本,并在运行SQL * Loader之前用空格替换空值/垃圾。
垃圾数据为'\ 0',随机字节位于真实数据之后。我接受了关于'Stip_NonNumeric'清理函数的建议:**创建或替换函数StripJunkData(strDat,char) 返回字符 是 开始 返回substr(strDat,1,instr(strDat,chr(0)) - 1 ); 结束; **它似乎工作,感谢您的帮助。 – MatthewToday 2011-02-04 04:06:32