溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Oracle數(shù)據(jù)鏈創(chuàng)建及使用

發(fā)布時間:2020-07-28 01:10:54 來源:網(wǎng)絡(luò) 閱讀:3832 作者:yangxhxl 欄目:關(guān)系型數(shù)據(jù)庫

 

項目上需要將老系統(tǒng)中的數(shù)據(jù)導(dǎo)入到新系統(tǒng)中,決定用數(shù)據(jù)鏈dblink將老數(shù)據(jù)導(dǎo)入到目標(biāo)數(shù)據(jù)庫中,將操作過程記錄如下:

1.創(chuàng)建Dblink

  create database link ygbgtest_portaltest_link
    connect to dbuser identified by password
    using '(DESCRIPTION =
     (ADDRESS_LIST =
       (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.xx.xx)(PORT = 1521))
     )
     (CONNECT_DATA =
       (SERVICE_NAME = orcl)
     )
   )';

2.用鏈表查詢

 執(zhí)行SQL  select * from ygbgtest_portaltest_link@portal_information; 

 報錯“ORA-02019:未找到遠(yuǎn)程數(shù)據(jù)庫的連接說明”。檢查發(fā)現(xiàn)表名和數(shù)據(jù)鏈名寫反了,⊙﹏⊙,調(diào)整后執(zhí)行 select * from portal_information@ygbgtest_portaltest_link;

 報錯“ORA-22992:無法使用從遠(yuǎn)程表選擇的LOB定位符”。檢查發(fā)現(xiàn)報錯原因是查詢的源數(shù)據(jù)表中含有CLOB類型字段。 

3.解決dblink查詢源數(shù)據(jù)表中含有大字段的問題

我解決該問題的方法是通過創(chuàng)建臨時表,并將源數(shù)據(jù)表中的數(shù)據(jù)導(dǎo)入到臨時表中。然后查詢臨時表以獲取CLOB字段數(shù)據(jù)。

--創(chuàng)建臨時表以獲取遠(yuǎn)程表數(shù)據(jù)   
create global temporary table temp_ygbg_information on commit preserve rows 
as select * from portal_information@ygbgtest_portaltest_link;
select count(1from temp_ygbg_information t;

 

--從臨時表中將數(shù)據(jù)插入到目的表中
insert into portal_information
  (id,
   title,
   picture_url,
   status,
   author_id,
   author_name,
   create_time,
   modify_date,
   delete_date,
   view_num,
   order_flag,
   summary,
   type,
   promulgation_charge,
   information_source,
   sort_num,
   sub_title,
   is_slidenews)
 select 
   SEQ_PORTAL_INFORMATION.NEXTVAL,
   title,
   picture_url,
   status,
   author_id,
   author_name,
   create_time,
   modify_date,
   delete_date,
   view_num,
   order_flag,
   summary,
   type,
   promulgation_charge,
   information_source,
   sort_num,
   sub_title,
   is_slidenews from temp_ygbg_information t1 where t1.id=3338;

 

--查看大字段中的數(shù)據(jù) 
select dbms_lob.substr(t.summary,4000,1) ty,t.* from portal_information t where t.id=3338;

 

 

自此,通過Dblink查詢和獲取源數(shù)據(jù)庫中的表數(shù)據(jù)并插入到目標(biāo)數(shù)據(jù)庫中的操作均能正常執(zhí)行了。當(dāng)然網(wǎng)上還有其它辦法可以查看大字段,例如使用視圖等。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI