Oracle跨庫(kù)訪問(wèn)DBLINK使用以及實(shí)際應(yīng)用
1. DBLINK的介紹
Oracle在進(jìn)行跨庫(kù)訪問(wèn)時(shí),可以創(chuàng)建DBLINK實(shí)現(xiàn),比如要將UAT的表數(shù)據(jù)灌入開(kāi)發(fā)環(huán)境,則可以使用UAT庫(kù)為數(shù)據(jù)源,通過(guò)DBLINK實(shí)現(xiàn)將查出的數(shù)據(jù)灌入開(kāi)發(fā)庫(kù)。簡(jiǎn)而言之就是在當(dāng)前數(shù)據(jù)庫(kù)中訪問(wèn)另一個(gè)數(shù)據(jù)庫(kù)中的表中的數(shù)據(jù)
2. DBLINK的使用簡(jiǎn)介
2.1 權(quán)限問(wèn)題
要想創(chuàng)建DBLINK,首先要檢查當(dāng)前用戶(hù)是否具備權(quán)限。
SELECT * FROM user_sys_privs WHERE PRIVILEGE LIKE UPPER('%DATABASE LINK%');
CREATE PUBLIC DATABASE LINK:表示所創(chuàng)建的dblink所有用戶(hù)都可以使用
CREATE DATABASE LINK:表示所創(chuàng)建的dblink只能是創(chuàng)建者能使用,別的用戶(hù)不可以使用
DROP PUBLIC DATABASE LINK : 表示所創(chuàng)建的dblink所用用戶(hù)都可以刪除
如果沒(méi)有以上權(quán)限,但是有UNLIMITED TABLESPACE權(quán)限,也可以實(shí)現(xiàn)DBLINK的創(chuàng)建和刪除(實(shí)測(cè))。
SELECT * FROM user_sys_privs WHERE PRIVILEGE LIKE UPPER('%UNLIMITED TABLESPACE%');
如果指定用戶(hù)沒(méi)有上面的幾個(gè)權(quán)限,需要通過(guò)sys用戶(hù)(這個(gè)充當(dāng)管理員角色,有很大權(quán)限)賦予權(quán)限,你需要登陸sys用戶(hù),并在sys用戶(hù)下執(zhí)行以下語(yǔ)句:
GRANT CREATE PUBLIC DATABASE LINK , DROP PUBLIC DATABASE LINK TO hxapp;
用來(lái)登錄到遠(yuǎn)程數(shù)據(jù)庫(kù)的帳號(hào)必須有CREATE SESSION權(quán)限
2.2 創(chuàng)建DBLINK
創(chuàng)建時(shí)加不加PUBLIC關(guān)鍵字,會(huì)影響DBLINK的使用范圍,加上PUBLIC關(guān)鍵字則所有用戶(hù)都可以使用,否則只有當(dāng)前用戶(hù)或者更高權(quán)限的用戶(hù)可以使用。
- 通過(guò)pl/sql developer圖形化界面創(chuàng)建
等價(jià)于CREATE DATABASE LINK DBLINK_TEST_TO230 CONNECT TO hxapp IDENTIFIED BY hxapp USING '3.1.11.230/cbsznckdb';
- 如果網(wǎng)絡(luò)配置文件tnsnames.ora配置了連接信息,則可以使用如下語(yǔ)句實(shí)現(xiàn):
CREATE DATABASE LINK &dblink_name CONNECT TO &db_name IDENTIFIED BY &db_passwd USING '&db_sid';
- 如果網(wǎng)絡(luò)配置文件tnsnames.ora未配置連接信息,則可以使用如下語(yǔ)句實(shí)現(xiàn):
CREATE DATABASE LINK &dblink_name CONNECT TO &db_name IDENTIFIED BY &db_passwd USING '(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP) (HOST = &ip) (PORT = 1521) ) ) (CONNECT_DATA = (SERVICE_NAME = &sid) ) )'; --例: CREATE DATABASE LINK &dblink_name CONNECT TO &db_name IDENTIFIED BY &db_password USING '(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP) (HOST = 3.1.11.230) (PORT = 1521) ) ) (CONNECT_DATA = (SERVICE_NAME = cbsznckdb) ) )'; --簡(jiǎn)寫(xiě) CREATE DATABASE LINK DBLINK_TEST_01 CONNECT TO hxapp IDENTIFIED BY hxapp USING '3.1.11.230/cbsznckdb';
創(chuàng)建以后查詢(xún)結(jié)果:
2.3 查詢(xún)DBLINK
- 查詢(xún)當(dāng)前實(shí)例下所有的DBLINK
SELECT * FROM dba_db_links t;
- 查詢(xún)當(dāng)前用戶(hù)下所有的DBLINK
SELECT * FROM user_db_links t;
2.4 刪除DBLINK
- 如果創(chuàng)建的是一個(gè)public的DBLINK,刪除時(shí)需要用
DROP PUBLIC DATABASE LINK &dblink_name;
- 如果創(chuàng)建的是一個(gè)private的DBLINK,刪除時(shí)需要用
DROP DATABASE LINK &dblink_name;
3. DBLINK實(shí)際應(yīng)用語(yǔ)句舉例
--插入語(yǔ)句 INSERT INTO test_01@DBLINK_TEST_01 t SELECT 'UntifA' FROM dual; --查詢(xún)語(yǔ)句 SELECT * FROM test_01@DBLINK_TEST_01 t WHERE t.name = 'UntifA'; --刪除語(yǔ)句 DELETE FROM test_01@DBLINK_TEST_01 t WHERE t.name = 'UntifA'; --更新語(yǔ)句 UPDATE test_01@DBLINK_TEST_01 t SET t.name = 'mengkiD~lufy' WHERE t.name = 'UntifA';
總結(jié)
到此這篇關(guān)于Oracle跨庫(kù)訪問(wèn)DBLINK使用以及實(shí)際應(yīng)用的文章就介紹到這了,更多相關(guān)Oracle跨庫(kù)訪問(wèn)DBLINK內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Oracle安裝遇到INS-30131錯(cuò)誤的解決方法
這篇文章主要介紹了Oracle安裝遇到錯(cuò)誤INS-30131的解決方法,感興趣的小伙伴們可以參考一下2016-07-07Oracle?function函數(shù)返回結(jié)果集的3種方法
工作中常需要經(jīng)過(guò)一段復(fù)雜邏輯處理后,得出的一個(gè)結(jié)果集,所以這篇文章主要給大家介紹了關(guān)于Oracle?function函數(shù)返回結(jié)果集的3種方法,需要的朋友可以參考下2023-07-07Oracle數(shù)據(jù)庫(kù)中查詢(xún)時(shí)怎么使用日期(時(shí)間)作為查詢(xún)條件
這篇文章主要給大家介紹了關(guān)于Oracle數(shù)據(jù)庫(kù)中查詢(xún)時(shí)怎么使用日期(時(shí)間)作為查詢(xún)條件的相關(guān)資料,Oracle數(shù)據(jù)庫(kù)下基于日期條件的查詢(xún)發(fā)揮著重要的作用,它能夠幫助開(kāi)發(fā)者實(shí)現(xiàn)比較復(fù)雜的數(shù)據(jù)管理任務(wù),需要的朋友可以參考下2024-02-02Oracle如何實(shí)現(xiàn)跨庫(kù)查詢(xún)
在一個(gè)數(shù)據(jù)庫(kù)中某個(gè)用戶(hù)下編寫(xiě)一個(gè)存儲(chǔ)過(guò)程,在存儲(chǔ)過(guò)程中使用DBLINK連接另一個(gè)數(shù)據(jù)庫(kù),從此數(shù)據(jù)庫(kù)中的一個(gè)用戶(hù)下取數(shù),然后插入當(dāng)前的數(shù)據(jù)庫(kù)中的一個(gè)表中2017-05-05Oracle中TIMESTAMP的幾種類(lèi)型介紹與實(shí)例
我們都知道date和timestamp都是對(duì)日期和時(shí)間的表示,只是兩種類(lèi)型的精確度不同,前者精確到秒,后者精確到小數(shù)秒(fractional_seconds_precision),可以是 0 to 9,缺省是6。這篇文章主要介紹了Oralce中TIMESTAMP的幾種類(lèi)型。有需要的朋友們可以參考借鑒。2016-12-12Oracle 查詢(xún)優(yōu)化的基本準(zhǔn)則詳解
本篇文章是對(duì)Oracle查詢(xún)優(yōu)化的基本準(zhǔn)則進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05