ITPub博客

首页 > 数据库 > Oracle > expdp/impdp导致存储过程中的中文部分出现乱码

expdp/impdp导致存储过程中的中文部分出现乱码

原创 Oracle 作者:qdrzq 时间:2014-04-24 13:58:43 0 删除 编辑
接到客户反馈的问题,
Linux下Oracle11gRAC(64位)环境下expdp导出产生dmp文件,由Windows平台Oracle10.2.0.4(64位)的impdp导入到Oracle10.2.0.4数据库.
导入之后发现,部分存储过程编译不通过.
查看其原因,是个别存储过程中的中文部分出现乱码.
例如:

ps_Message :='取得商品的上次批发数量和批发价';
变成了:
ps_Message :='取得商返纳洗闻?⑹?亢团?⒓?apos;;

ps_Message:=substr('配送验收调整可配送余额意外出错:'||vs_Message,1,2000);
变成了:
ps_Message:=substr('渌脱槭盏髡?膳渌陀喽钜馔獬龃恚?apos;||vs_Message,1,2000);

ps_Message:='转移不完整的流水失败!';
变成了:
ps_Message:='转移不完整的流水О埽?apos;;

--生成要货单主表
     select count(*), nvl(sum(yhCount), 0)
变成了:
--生梢?醯ブ鞅?     select count(*), nvl(sum(yhCount), 0)

即从某个汉字开始起,缺少了汉字的高字节.
难道expdp/impdp对oracle数据字典表的内容(dba_source的text列,对应底层:sys.source$.source列varchar2(4000) ) 能产生差异?
目前是通过从正式环境获取正确的存储过程脚本,重新执行解决了本问题.

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29512902/viewspace-1148541/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: IMP-00058 ORA-00942
请登录后发表评论 登录
全部评论

注册时间:2014-03-01

  • 博文量
    38
  • 访问量
    362734