什么網(wǎng)站能通過做任務(wù)賺錢嗎獨(dú)立站怎么建站
1. DBLINK的介紹
Oracle在進(jìn)行跨庫訪問時(shí),可以創(chuàng)建DBLINK實(shí)現(xiàn),比如要將UAT的表數(shù)據(jù)灌入開發(fā)環(huán)境,則可以使用UAT庫為數(shù)據(jù)源,通過DBLINK實(shí)現(xiàn)將查出的數(shù)據(jù)灌入開發(fā)庫。
簡而言之就是在當(dāng)前數(shù)據(jù)庫中訪問另一個數(shù)據(jù)庫中的表中的數(shù)據(jù)
2. DBLINK的使用簡介
2.1 權(quán)限問題
要想創(chuàng)建DBLINK,首先要檢查當(dāng)前用戶是否具備權(quán)限。
SELECT * FROM user_sys_privs WHERE PRIVILEGE LIKE UPPER('%DATABASE LINK%');
CREATE PUBLIC DATABASE LINK:表示所創(chuàng)建的dblink所有用戶都可以使用
CREATE DATABASE LINK:表示所創(chuàng)建的dblink只能是創(chuàng)建者能使用,別的用戶不可以使用
DROP PUBLIC DATABASE LINK : 表示所創(chuàng)建的dblink所用用戶都可以刪除
如果沒有以上權(quán)限,但是有UNLIMITED TABLESPACE權(quán)限,也可以實(shí)現(xiàn)DBLINK的創(chuàng)建和刪除(實(shí)測)。
SELECT * FROM user_sys_privs WHERE PRIVILEGE LIKE UPPER('%UNLIMITED TABLESPACE%');
如果指定用戶沒有上面的幾個權(quán)限,需要通過sys用戶(這個充當(dāng)管理員角色,有很大權(quán)限)賦予權(quán)限,你需要登陸sys用戶,并在sys用戶下執(zhí)行以下語句:
GRANT CREATE PUBLIC DATABASE LINK , DROP PUBLIC DATABASE LINK TO hxapp;
用來登錄到遠(yuǎn)程數(shù)據(jù)庫的帳號必須有CREATE SESSION權(quán)限
2.2 創(chuàng)建DBLINK
創(chuàng)建時(shí)加不加PUBLIC關(guān)鍵字,會影響DBLINK的使用范圍,加上PUBLIC關(guān)鍵字則所有用戶都可以使用,否則只有當(dāng)前用戶或者更高權(quán)限的用戶可以使用。
- 通過pl/sql developer圖形化界面創(chuàng)建
等價(jià)于CREATE DATABASE LINK DBLINK_TEST_TO230CONNECT TO hxapp IDENTIFIED BY hxappUSING '3.1.11.230/cbsznckdb';
- 如果網(wǎng)絡(luò)配置文件tnsnames.ora配置了連接信息,則可以使用如下語句實(shí)現(xiàn):
CREATE DATABASE LINK &dblink_nameCONNECT TO &db_name IDENTIFIED BY &db_passwdUSING '&db_sid';
- 如果網(wǎng)絡(luò)配置文件tnsnames.ora未配置連接信息,則可以使用如下語句實(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)))';
--簡寫CREATE DATABASE LINK DBLINK_TEST_01CONNECT TO hxapp IDENTIFIED BY hxappUSING '3.1.11.230/cbsznckdb';
創(chuàng)建以后查詢結(jié)果:
2.3 查詢DBLINK
- 查詢當(dāng)前實(shí)例下所有的DBLINK
SELECT * FROM dba_db_links t;
- 查詢當(dāng)前用戶下所有的DBLINK
SELECT * FROM user_db_links t;
2.4 刪除DBLINK
- 如果創(chuàng)建的是一個public的DBLINK,刪除時(shí)需要用
DROP PUBLIC DATABASE LINK &dblink_name;
- 如果創(chuàng)建的是一個private的DBLINK,刪除時(shí)需要用
DROP DATABASE LINK &dblink_name;
3. DBLINK實(shí)際應(yīng)用語句舉例
--插入語句
INSERT INTO test_01@DBLINK_TEST_01 tSELECT 'UntifA' FROM dual;
--查詢語句
SELECT * FROM test_01@DBLINK_TEST_01 t WHERE t.name = 'UntifA';
--刪除語句
DELETE FROM test_01@DBLINK_TEST_01 t WHERE t.name = 'UntifA';
--更新語句
UPDATE test_01@DBLINK_TEST_01 tSET t.name = 'mengkiD~lufy'WHERE t.name = 'UntifA';