首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 教學

Oracle 快速建立 Database Link:單一 SQL 範本免配置 tnsnames.ora

     編輯:Oracle 教學

Oracle 快速建立 Database Link:單一 SQL 範本免配置 tnsnames.ora

傳統建立 DB Link 需要遠端監聽就緒、本地配置 tnsnames.ora、確認 GLOBAL_NAMES 參數,步驟繁瑣。本文提供一條自包含連線描述符的 CREATE DATABASE LINK 範本,直接在 SQL 中指定主機、埠、服務名,無須修改網路設定檔,適合快速測試與臨時跨庫查詢。

範本 SQL

CREATE PUBLIC DATABASE LINK mydblink
CONNECT TO hyl IDENTIFIED BY hyl
USING '(DESCRIPTION =
  (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.88)(PORT = 1521))
  )
  (CONNECT_DATA =
    (SERVICE_NAME = prod)
  )
)';

參數說明

子句範例值說明
mydblink自訂 DB Link 名稱全域唯一,供 SELECT * FROM table@mydblink 使用
CONNECT TO hyl遠端用戶遠端資料庫存在的用戶帳號
IDENTIFIED BY hyl遠端密碼明文寫在 SQL 中,生產環境建議用 Wallet 儲存憑證
HOST = 192.168.1.88遠端 IP/主機名確保網路可達、防火牆開放 1521
PORT = 1521監聽埠非預設埠需對應修改
SERVICE_NAME = prod服務名遠端 SHOW PARAMETER SERVICE_NAME 確認

驗證與使用

-- 測試連線
SELECT * FROM dual@mydblink;

-- 跨庫查詢
SELECT e.ename, d.dname
FROM emp@mydblink e, dept@mydblink d
WHERE e.deptno = d.deptno;

進階選項

  • 私有 DB Link:移除 PUBLIC 關鍵字,僅建立者可見。
  • 共用 DB Link:CREATE SHARED PUBLIC DATABASE LINK ... AUTHENTICATED BY user IDENTIFIED BY pwd,減少連線數。
  • 全域名稱強制:若 GLOBAL_NAMES=TRUE,DB Link 名稱必須等於遠端 GLOBAL_NAME,否則報 ORA-02085。

常見錯誤

收藏此範本,未來建立 DB Link 只需修改四個變數(名稱、用戶、IP、服務名)即可秒級完成。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
錯誤原因解決
ORA-12154連線描述符語法錯誤或主機不可達檢查括號配對、IP/埠、防火牆
ORA-01017帳號/密碼錯誤確認遠端用戶存在且密碼正確
ORA-02085GLOBAL_NAMES=TRUE 但 Link 名不符改 Link 名為遠端 GLOBAL_NAME 或設定 GLOBAL_NAMES=FALSE