无法从远程 Oracle 11g 链接数据库读取数据

Failing to read data from remote Oracle 11g linked database

我有用户名和密码,2个Oracle数据库的完整权限。当我从 A 到 B 创建数据库 link 时,我没有看到错误:

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';

当我尝试 运行 针对 linked 服务器的查询时:

SELECT * FROM TheTable@link_to_uat;

我收到:

ORA-02019: Connection description for remote database not found

我可以使用上面的用户名和密码从 Oracle Sql Developer 和其他工具连接到远程数据库,但由于某种原因 Oracle 无法弄清楚。

我现在工作的这家公司锁定了所有机器,包括开发箱,所以我无法修改 TNSNames.ora 文件。

我尝试使用以下方法创建 linked 服务器:

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 中连接到两台服务器的屏幕截图:

还有其他方法可以解决这个问题吗?

好吧,在和这个闲逛了一会儿之后,我发现我需要制作一个 PUBLIC 链接数据库。像这样:

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)))'