2017-04-05 109 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)))'