2017-04-05 61 views
0

我有用戶名和密碼,2個Oracle數據庫的完全權限。當我創建一個從A到B的數據庫鏈接,我看不出有什麼錯誤:無法從遠程Oracle 11g鏈接的數據庫讀取數據

ALTER SESSION SET CURRENT_SCHEMA = TPMDBO; 

CREATE DATABASE LINK link_to_uat 
CONNECT TO {UAT username} 
IDENTIFIED BY {UAT user password} 
USING '{UAT fqdn}:2053/ocrdev'; 

當我試圖運行對鏈接服務器的查詢:

SELECT * FROM [email protected]_to_uat; 

我收到:

ORA-02019: Connection description for remote database not found 

我能夠使用上面的Oracle Sql Developer和其他工具的用戶名和密碼連接到遠程數據庫,但由於某些原因,Oracle無法弄清楚。

我正在爲此工作的公司鎖定所有機器,包括開發盒,所以我無法修改TNSNames.ora文件。

我試圖創建一個使用鏈接的服務器:

CREATE DATABASE LINK link_to_uat 
CONNECT TO {remote username} 
IDENTIFIED BY {remote user\'s password} 
USING '(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST={fqdn})(PORT=2053)))(CONNECT_DATA=SERVER=DEDICATED)(SERVICE_NAME=ocrdev)))'; 

但很顯然,這是很糟糕的語法和我得到:

ORA-12154: TNS: could not resolve the connect identifier... 

所有建議的行動涉及修改tnsnames.ora文件,這是在開發監獄這裏不可能。

對於遠程數據庫和本地數據庫,我都有管理員權限。

這裏是我的兩個服務器之間的連接,從截圖的Aqua Data Studio中:

UAT Localhost

是否有任何其他方式來解決這個問題?

+0

當使用sql developer連接到遠程服務器時,您使用哪個SID或服務名稱?或者你能提供正在爲你工作的sql開發人員連接窗口的屏幕截圖嗎? – JSapkota

+0

更新了屏幕截圖的問題。 –

+0

而不是數據庫鏈接連接描述中的服務名稱,您可以使用'SID = ocrdev' – JSapkota

回答

0

好吧,經過這段時間後,我發現我需要做一個鏈接的數據庫。像這樣:

CREATE PUBLIC DATABASE LINK "LINK_TO_PROD" 
    CONNECT TO {username} IDENTIFIED BY {password} 
    USING '(DESCRIPTION =(ADDRESS_LIST = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = {prod server})(PORT = 2053))) 
    (CONNECT_DATA = (SERVICE_NAME = orcprd)))'