實現結果:在一個資料庫中某個使用者下編寫一個預存程序,在預存程序中使用DBLINK串連另一個資料庫,從此資料庫中的一個使用者下取數,然後插入當前的資料庫中的一個表中。
二. 實現方法步驟:
1. 建立預存程序
2. 在預存程序中先建立database link
3. 建立成功
4. 從另一個資料庫取出資料插入到當前資料庫中
5. 任務完成
三. 建立DBLINK的方法:
1. create public database link dblink
connect to totalplant identified by totalplant
using '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = LOCALHOST)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = prd.gdc)
)
)';
文法解釋:create public database link DBLINK名字(自己隨便起)
connect to 使用者名稱 identified by 密碼
using '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 要串連的資料庫所在伺服器的IP地址)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = 要串連的資料庫的在本地的服務名(即要串連的資料庫的SID))
)
)';
2. 如果建立private的DBLINK
create database link dblink
connect to totalplant identified by totalplant
using '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = LOCALHOST)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = prd.gdc)
)
)';
四. 串連成功後從所串連的資料庫中取數的方法:
1. select * from tbl_ost_notebook@dblink;
說明:只需在表名的後面加上"@DBLINK名字"即可。
五. 在當前資料庫下查看所有的DBLINK的方法:
1. select * from dba_db_links;
六. 刪除當前資料庫下的一個指定的DBLINK的方法:
1. 如果建立的是一個public的DBLINK,刪除時需要用
drop public database link dblink;
2. 如果建立的是一個private的DBLINK,刪除時需要用
drop database link dblink;
說明:drop public database link DBLINK名字;
七. 查看當前資料庫的全域資料庫名的方法:
1. select * from global_name;
八. 查看目前使用者具有哪些針對DBLINK的許可權的方法:
1. SELECT DISTINCT PRIVILEGE AS "Database Link Privileges"
FROM ROLE_SYS_PRIVS
WHERE PRIVILEGE IN ( 'CREATE SESSION','CREATE DATABASE LINK',
'CREATE PUBLIC DATABASE LINK');