ORACLE数据库A,它设置的字符编码为GBK,另一个ORACLE数据库B,它设置的字符编码为UTF-8,现从数据库A迁移数据(采用DBLink)至数据库B出现如题所示错误,请教解决方法。

解决方案 »

  1.   

    这是由于字符集不同造成的。GBK每个双字节字符只需要2个字节来存放,而UTF-8则要3到4个字节。
    打个比方,原来GBK的一个varchar2(10)的字段,存放了4个汉字,则这个字段就只占了8个字节。而迁移到UTF-8的数据库的时候,这个字段最少需要12个字节来存放,这时就会出现你所描述的错误了。