0

从 Postgres 选择外部表时出现以下错误,请帮助我解决问题。

错误:无法建立外部表“test_enames”的连接

详细信息:ORA-12154:TNS:无法解析指定的连接标识符

SQL状态:HV00N

细节

1.我在 Windows 10 64 位机器上使用 Postgres 13 版本。

2.我在我的Windows 10 6bit机器上成功安装了oracle_fdw-2.3.0-pg13-win64 。

3.为TNS_ADMIN创建系统变量=C:\Oracle\product\12.2.0x64\client_1\network\admin

4.成功创建以下步骤。

CREATE FOREIGN DATA WRAPPER oracle_fdw

CREATE SERVER foreign_oracle
TYPE 'Oracle12'
VERSION '12'
FOREIGN DATA WRAPPER oracle_fdw
OPTIONS (dbserver '//vms1.abc.com:1524/ABC00D70');

CREATE USER MAPPING FOR postgres SERVER foreign_oracle
OPTIONS ("user" 'Test', password 'Test1');

CREATE FOREIGN TABLE test_enames(
eno numeric NULL,
ename character varying(100),
eloc character varying(100)
) SERVER foreign_oracle
OPTIONS (table 'TEST_ENAMES');

但是在选择表格时仍然出错,如果我错过了任何步骤,请告诉我。

谢谢

4

1 回答 1

1

这似乎是一个 Oracle 配置问题。要对此进行调试,请尝试以运行 PostgreSQL 服务的操作系统用户身份运行以下命令:

sqlplus Test/Test1@//vms150.abc.com:1524/ABC00D70

如果这不起作用,请开始调试。这应该更容易,因为 oracle_fdw 不是等式的一部分。

如果上面的 sqlplus 调用如您所愿,请确保 PostgreSQL 服务已设置TNS_ADMIN环境变量(您是否在设置后重新启动了服务?)。我不确定如何检查 Windows 上正在运行的进程的环境,但“进程资源管理器”可能会奏效。

此外,您不应该使用CREATE FOREIGN DATA WRAPPER创建 FDW,而是按照文档中的说明创建扩展:

CREATE EXTENSION oracle_fdw;

这将为您创建外部数据包装器。

于 2021-01-07T07:50:58.143 回答