本文實(shí)例講述了oracle跨庫(kù)查詢dblink的用法。分享給大家供大家參考,具體如下:
1.創(chuàng)建之前的工作
在創(chuàng)建dblink之前,首先要查看用戶是否有相應(yīng)的權(quán)限。針對(duì)特定的用戶,使用 sqlplus user/pwd登錄后,執(zhí)行如下語句:
復(fù)制代碼 代碼如下:
select * from user_sys_privs t where t.privilege like upper('%link%');
在sys用戶下,顯示結(jié)果為:
SYS CREATE DATABASE LINK NO
SYS DROP PUBLIC DATABASE LINK NO
SYS CREATE PUBLIC DATABASE LINK NO
可以看出在數(shù)據(jù)庫(kù)中dblink有三種權(quán)限:
CREATE DATABASE LINK--所創(chuàng)建的dblink只能是創(chuàng)建者能使用,別的用戶使用不了
CREATE PUBLIC DATABASE LINK--public表示所創(chuàng)建的dblink所有用戶都可以使用
DROP PUBLIC DATABASE LINK--刪除指定dblink
如果想要改變某個(gè)用戶的權(quán)限,需要在sys用戶下修改:
復(fù)制代碼 代碼如下:
grant CREATE PUBLIC DATABASE LINK,DROP PUBLIC DATABASE LINK to scott;
查看dblink,有兩種方式,分別如下:
①.
復(fù)制代碼 代碼如下:
select owner,object_name from dba_objects where object_type='DATABASE LINK';
②.復(fù)制代碼 代碼如下:
select * from dba_db_links;
2. 創(chuàng)建dblink
create public database link LINK_NAME
connect to USRNAME identified by "PASSWORD"
using
'(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = XXX.XXX.XXX.XXX)(PORT = 1521))
(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = XXX))
)';
注意:using后跟的是一個(gè)字符串,其中一定不要出現(xiàn)不必要的空格,否則會(huì)出錯(cuò)ORA-12514,在上面的代碼中為了方便閱讀其中進(jìn)行了換行,可能會(huì)出現(xiàn)空格而導(dǎo)致錯(cuò)誤,所以使用的時(shí)候?qū)⒖崭袢サ艟蚾k了。
這里L(fēng)INK_NAM為自定的名稱;USERNAME和PASSWORD為指定的oracle數(shù)據(jù)庫(kù)中的用戶名和密碼,SERVICE_NAME如果不確定的話,可以通過以下語句獲得:
復(fù)制代碼 代碼如下:
show parameter service_names;
或者
復(fù)制代碼 代碼如下:
select name,value from v$parameter where name='service_names'
3.dblink的使用
dblink的使用相對(duì)比較簡(jiǎn)單,把一般訪問本地表時(shí)的表名改為如下格式即可:[user.]table@link_name。
復(fù)制代碼 代碼如下:
select studentid from abc.studeng@abc_ten;
4.刪除dblink
確定要?jiǎng)h除的dblink名字以后,可以通過drop命令直接將其刪除:
復(fù)制代碼 代碼如下:
drop public database link abc_ten;
希望本文所述對(duì)大家Oracle數(shù)據(jù)庫(kù)程序設(shè)計(jì)有所幫助。
您可能感興趣的文章:- Oracle10g通過DBLink訪問MySQL示例
- Oracle DATABASE LINK(DBLINK)創(chuàng)建與刪除方法
- oracle數(shù)據(jù)庫(kù)在客戶端建立dblink語法
- Oracle中建立了dblink怎么使用
- Oracle中dblink的實(shí)際應(yīng)用示例詳解