【问题标题】:ERROR: connection for foreign table "test_enames" cannot be established错误:无法建立外部表“test_enames”的连接
【发布时间】:2021-01-06 20:22:11
【问题描述】:

我在从 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');

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

谢谢

【问题讨论】:

    标签: postgresql foreign-data-wrapper oracle-fdw


    【解决方案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;
    

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

    【讨论】:

    • 问题已通过以下更正得到修复。
    • CREATE SERVER foreign_oracle TYPE 'Oracle12' VERSION '12' FOREIGN DATA WRAPPER oracle_fdw OPTIONS (dbserver 'ABC00D70');
    • 是的,Oracle 配置问题。
    猜你喜欢
    • 2013-01-13
    • 1970-01-01
    • 2020-08-28
    • 2017-10-12
    • 1970-01-01
    • 2020-02-01
    • 2014-12-16
    • 2022-04-25
    • 2018-08-14
    相关资源
    最近更新 更多