當使用者要跨本地資料庫,通路另外一個資料庫表中的資料時,本地資料庫中必須建立了遠端資料庫的dblink,通過dblink本地資料庫可以像通路本地資料庫一樣通路遠端資料庫表中的資料。下面講介紹如何在本地資料庫中建立dblink.
建立dblink一般有兩種方式,不過在建立dblink之前使用者必須有建立dblink的權限。想知道有關dblink的權限,以sys使用者登入到本地資料庫:
可以看出在資料庫中dblink有三種權限create database link(所建立的dblink隻能是建立者能使用,别的使用者使用不了),create public database link(public表示所建立的dblink所有使用者都可以使用),drop public database link。
在sys使用者下,把create public database link,drop public database link權限授予給你的使用者
grant create public database link,drop public database link to scott;
然後以scott使用者登入本地資料庫
1.建立dblink的第一種方式,是在本地資料庫tnsnames.ora檔案中配置了要遠端通路的資料庫。
create public database link
to_bylw connect to scott identified by tiger using 'bylw';
其中to_bylw是你建立的dblink名字,bylw是遠端資料庫的執行個體名,scott/tiger是登入到遠端資料庫的使用者/密碼。然後在本地資料庫中通過dblink通路遠端資料庫'bylw'中scott.tb_test表,sql語句如下所示
2.建立dblink的第二種方式,是在本地資料庫tnsnames.ora檔案中沒有配置要通路的遠端資料庫
第二種是把第一種配置在tnsnames.ora檔案中的資訊,直接放在建立dblink語句後面。第一種情況tnsnames.ora檔案中資訊如下: