Oracle跨資料庫查詢並插入 )

來源:互聯網
上載者:User

工作中需要從一個資料庫中的表GIS_WEICHAI_DATA_1S中的資料匯入到另個一資料庫的表GIS_WEICHAI_DATA_1S中,資料庫伺服器都是遠端<IP分別為: 221.131.228.256     211.161.192.46>!我的實現方法是在本地使用PL/SQL操作兩個遠程伺服器,實現方式如下:

1.

              為你需要操作的遠端資料庫伺服器建立本地服務名:

      在本機資料庫安裝檔案中,找到$ORACLE_HOME/network/admin/tnsnames.ora檔案,

    末尾添加

    --第一個遠程伺服器的服務名:MYORACLE1

MYORACLE1 =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = 221.131.228.256)(PORT = 1521))

    )

    (CONNECT_DATA =

      (SERVICE_NAME = orcl)

    )

  )

   --第一個遠程伺服器的服務名:MYORACLE2

 

MYORACLE2 =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = 211.161.192.46)(PORT = 1521))

    )

    (CONNECT_DATA =

      (SERVICE_NAME = orcl)

    )

  )

  --如果有更多的遠端資料庫需要同時操作,可以依次增加!

  --如果本機用的Windows作業系統,可以使用Oracle內建的Net Manager 工具,以圖形化的操作方式來建立服務名!

2.

    在本機上使用sysdba的角色登入本機資料庫,建立database link: 

    執行如下sql語句:

    --遠程伺服器一的對應database link

        create public database link MYDBLINK1   --可以隨便取名,當然,不能是關鍵字或保留字

        connect to dbUserName1 identified by dbpwd1

        using ' MYORACLE1';

    --遠程伺服器二的對應database link

        create public database link MYDBLINK2  --可以隨便取名,當然,不能是關鍵字或保留字

        connect to dbUserName2 identified by dbpwd2

        using ' MYORACLE2';

    --其中using後面填對應的資料庫服務名,dbUserName1,dbpwd1填對應的資料服務器登入名稱,密碼

    --刪除database link

          Drop database link MYDBLINK1;  --本例中是MYDBLINK1和MYDBLINK2

3.

      操作遠程伺服器上的表,在要在對應的表後面加上@ linkName(對應的資料庫連結名),就跟操作本機資料庫中的表差不多,可以從不同資料庫伺服器中提取資料!很方便!

       insert into GIS_WEICHAI_DATA_1S@MYDBLINK1 select * from GIS_WEICHAI_DATA_1S@ MYDBLINK2 where rownum<=10000;

4.

    如果需要頻繁的使用遠程伺服器中的表,上面的寫法有點煩人,這時候可以考慮為這個表建立一個同義字
        create synonym syName for GIS_WEICHAI_DATA_1S@MYDBLINK1;

    以後在要使用GIS_WEICHAI_DATA_1S@MYDBLINK1的時候用syName就可以了!

    刪除同義字的文法為:

        drop synonym syName;

5.

    查看當前資料庫的DB Link;

      select * from user_db_links; --使用者 DB Link
      select * from dba_db_links;  --dba DB Link
      select * from v$dblink;      --當前DB Link

原文:http://blog.csdn.net/tangkai_java/article/details/5831741

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.