Oracle数据库中Blob类型数据传输至clob类型
Oracle数据库中Blob类型数据传输至clob类型
·
在我们数据集成的时候,Oracle数据库中会碰到源库字段是Blob类型,目标库字段是Clob,直接去ETL,不做转换的话,数据能够过去,但因为Blob是富文本类型,Clob只能存储字符数据,传输的字段内容会损坏,会乱码。也试过用Oracle中DBMS_LOB包里面的函数去转换,但是结果就是buffer cache 被直接占满,最后重启数据库才解决。
用ELT解决的方法也很简单,但是一般去百度的话基本都是去建函数,建存储过程去调用DBMS_LOB包里面去转,这种方法对于大数据量的可行性不高,特此记录一下。
这里的ETL工具是用Kettle,在表输入与表输出之间加入JavaScript的组件,去调用java.lang 包里面的String方法。这个兼容模式的话开启之后就是使用JavaScript之前的语法。然后在表输出的组件里面映射上JavaScript组件输出的字段就可以了。这样转换之后,Blob字段里的数据能够与Clob字段里数据保持一致。当然,目标库也可以是其他数据库的大文本字段类型,如mysql或者postgresql的text类型字段也都是可以转换成功的。
var WJBLOB2=new Packages.java.lang.String(WJBLOB);
更多推荐
已为社区贡献1条内容
所有评论(0)