ITPub博客

首页 > 数据库 > Oracle > 关于不同环境数据库编译转换乱码解决方案

关于不同环境数据库编译转换乱码解决方案

原创 Oracle 作者:叫我口华子 时间:2015-05-09 11:30:28 0 删除 编辑
两个oracle数据库  一个为ASCII编码,一个为utf-8编码。目标库为utf-8。 由于ASCII编码只有查询权限。增加了一个中间库来实现中间库也是ASCII

用物化视图的方法:1:在ASCII库建物化视图  
      create materialized view log on TEMP with primary key;

2:在中间库建物化视图,将字段类型为VARCHAR2的字符转为字节流防止乱码问题。
      create materialized view TEMP  refresh fast on demand on select utl_raw.cast_to_raw(MC) mc from TEMP@ascii

      create materialized view log on TEMP with primary key;

3:在目标库即utf-8上建物化视图进行转码
      create materialized view TEMP  refresh fast on demand on
        select REPLACE(utl_raw.cast_to_varchar2(utl_raw.convert(nvl (mc,'5a525346'),'AMERICAN_AMERICA.UTF8','SIMPLIFIED CHINESE_CHINA.ZHS16GBK')),'ZRSF',NULL) MC
     from TEMP@ascii中间库

注意点:utl_raw.convert 函数是为了防止有空值转换会有异常,replace中的也是asiii 下的 ZRSF的字节流名称。
            附带一个刷新执行语句   exec dbms_mview.refresh('TEMP','C')   全量刷新。

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

上一篇: 没有了~
下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2015-04-16

  • 博文量
    1
  • 访问量
    2355