DBLINK使用的思考

2021-10-25 20:27:55 字數 1460 閱讀 7409

專案中遇到了需要從上游系統獲取資料的需求,而不同系統的資料儲存在不同資料庫中(但都是oracle資料庫)。需要一種方式能夠提供跨庫的資料獲取。dblink提供了這種需求的實現方式,通過建立dblink,我們能夠通過table_name@link_name的方式,像在自己資料庫上做資料操作一樣訪問其他物理庫的資料。

我們使用dblink前需要先建立好我們需要的dblink,然後通過@link_name去使用,下面是個簡單的例子;

-- 1. 自己的資料庫使用者需要有建立dblink的許可權

grant

create

database link to my_user_name;

-- 2. 建立dblink

create

database link link_name connect

to user_name identified by user_passwd using

'(description =

(address = (protocol = tcp)(host = 0.0.0.0 )(port = 1521))

(connect_data =

(server = server)

(service_name = service_name)

)'-- a. link_name是我們建立的bdlink的名字,在使用的時候會用到

-- b. user_name,user_passwd是我們要建立dblink的對方資料庫的使用者名稱及密碼

-- c. using後面跟的是對方資料庫的連線串

-- 3. 使用dblink,使用起來就像在自己庫上的操作

-- 如,查詢建立dblink資料庫上的user_info表

select

*from user_info@link_name

where user_name=

'kangkang'

;

oracle的dblink雖然建立和使用簡單,但在使用過程中也發現了其一些問題及侷限性,例如:

針對上述問題,思考了一些建議及優化思路(僅參考)

補充——lob型別資料的解決:

可以建立臨時表獲取對方表資料,再插入資料庫

--建立臨時表並同步資料

create

table user_info_temp as

select

*from user_info@link_name

where 條件;

--插入臨時表資料

insert

into user_info values

select

*from user_info_temp;

--記得清理掉臨時表

drop

table user_info_temp;

Oracle中DBLink的使用

oracle中dblink的使用 dblink 的作用是在區域網內,通過一台伺服器上面的資料庫訪問另外一台伺服器上面資料庫的功能。下面簡單的介紹dblink的配置 伺服器a ip 10.10.10.107,資料庫例項名 orcl 資料庫登入 test test 伺服器b ip 10.10.10.22...

dblink的建立和使用

dblink database link 資料庫鏈結顧名思義就是資料庫的鏈結 就像 線一樣,是乙個通道,當我們要跨本地資料庫,訪問另外乙個資料庫表中的資料時,本地資料庫中就必須要建立遠端資料庫的dblink,通過dblink就可以像訪問本地資料庫一樣訪問遠端資料庫表中的資料。建立dblink的語法 ...

Oracle建立使用(公用)DB Link

1 檢視資料庫例項名 show parameter service names 2 給使用者授權建立link grant create public database link,create database link to 使用者名稱 3 建立db link create public datab...