熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

解決不同字符集數據庫間的數據同步問題

2013-11-13 15:57:29  來源: Oracle 

  解決不同字符集數據庫間的數據同步問題

  首先在原數據庫上做一個視圖對保存漢字的字段加包函數utl_raw_cast_to_raw(保存漢字的字段)

  在新數據庫上做個數據庫連接連接指向原數據庫之後對步驟中的視圖中使用了

  utl_raw_cast_to_raw的字段再用utl_raw_cast_to_varchar函數轉換回來

  具體測試環境和測試方法:

  

  :testdb zhsgbk :gsweb usascii

  

  

  

  的testdb數據庫中建一個表 itaxcity 其中有一列name中保存漢字

  增加一個視圖如:

  

  CREATE VIEW V_CITY AS SELECT UTL_RAWCAST_TO_RAW(NAME) AS NAME FROM CITY; SELECT * FROM V_CITY;

  機器上的tnsnamesora文件中增加到的連接入口

  在gsweb數據庫中增加到的數據庫鏈路如:

  

  SQL> create public database link testdb connect to itax identified by itax using testdb; Database link created

  在gsweb數據庫查詢

  

  select utl_rawcast_to_varchar(name) from V_city@testdb

  不能基於視圖來建立物化視圖所以只能先建一個緩沖表然後每天使用存儲過程來填充此表

  以達到同步數據之目的

  另外如果僅做查詢使用則在目的數據庫上增加一個視圖即可

  如下所示:

  源數據庫上的視圖:

  

  CREATE VIEW V_fg_wh AS SELECT UTL_RAWCAST_TO_RAW(fg_wh) AS fgwh FROM fg_wh;

  目的數據庫上的數據鏈路:

  

  create public database link gsweb connect to gs identified by htjs_ using gsweb;

  目的數據庫上的視圖:

  

  create view fg_wh as select utl_rawcast_to_varchar(fgwh) fgwh from v_fg_wh@gsweb


From:http://tw.wingwit.com/Article/program/Oracle/201311/17577.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.