1.查看dblink
SELECT OWNER,OBJECT_NAME FROM DBA_OBJECTS WHERE OBJECT_TYPE='DATABASE LINK';
或者
SELECT * FROM DBA_DB_LINKS;
2.創建dblink
前提:
創建dblink的用戶有對應的數據庫權限 create public database link 或者create database link
可以使用
grant create public database link,create database link to myAccount;
來授權.
create public database link dblinkname connect to username identified by password using '(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = database_ip)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME =servicename)))';
如果在create之后不加public,則創建的dblink就不是公共的,就只有創建者可以使用了.
補充:
如何確定數據庫的servicename:
1.在sqlplus中使用
show parameter[s] service_names;
注意parameter和parameters都可以
2.使用
select name,value from v$parameter where name='service_names';
3.使用dblink
例如,在本機數據庫上創建了一個scott_rmthost的public dblink(使用遠程主機的scott用戶連接),則用sqlplus連接到本機數據庫,執行select * from scott.emp@scott_rmthot即可以將遠程數據庫上的scott用戶下的emp表中的數據獲取到.
也可以在本地建一個同義詞來指向scott.emp@scott_rmthost,這樣取值就方便多了.
4.刪除dblink
注意:用戶有create public database link 或者create database link 權限.
drop public database link dblinkname;