經過建立database link實現Oracle跨數據庫查詢的方法java
在Oracle本地數據庫端執行賦權dbuser賬號sql
SQL> grant create database link to dbuser;
配置本地數據庫服務器的tnsnames.ora文件 數據庫
$ vi $ORACLE_HOME/network/admin/tnsnames.ora
增長鬚要遠程鏈接服務器的鏈接配置,如:瀏覽器
ORCL_REMOTE = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = oradb )(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) ) )
登陸到本地數據庫,建立database link服務器
執行以下查詢語句,其中ORCL_LINK爲database link名(可自定義),ORCL_REMOTE爲先前在tnsnames.ora中定義的鏈接名,ide
dbuser爲用戶名,password爲密碼 create database link ORCL_LINK connect to dbuser identified by password using 'ORCL_REMOTE';
如果全局dblink, 在create後加public 登錄名也必須是system,sys用戶spa
查詢建立database link的2中方式:.net
1)、執行SQL語句。code
select * from user_db_links; --用戶 DB Link select * from dba_db_links; --dba DB Link select * from v$dblink; --當前DB Link
2)、在PL/SQL中,在左邊瀏覽器中點擊database links就能夠看到數據庫鏈路了。orm
使用連接的數據庫
查詢、刪除和插入數據和操做本地的數據庫是同樣的,只不過表名須要寫成「表名@database link名」,如
select * from table_name@ORCL_LINK
其它:
刪除database link(本例中是ORCL_LINK)
SQL> Drop database link ORCL_LINK;
建立同義詞
create [public] synonym emp for scott.emp;
public 不知道加不加
如果同服務器,通常不推薦使用dblink
這種狀況最好用schema 數據庫名.表名