1

我正在尝试使用 oracle 的 hsodbc 通用数据库链接驱动程序从我的 oracle 10gr2 数据库服务器访问 postgresql 数据库。我想我已经配置了所有东西,但是在尝试远程查询后我从 sqlplus promt 收到了这个错误。

SQL> select * from temp_user@intranet;
从 temp_user@intranet 中选择 *
                        *
第 1 行的错误:
ORA-28545: 连接到代理时由 Net8 诊断出的错误
无法检索 NETWORK/NCR 消息 65535 的文本
ORA-02063: 前 2 行来自 INTRANET

如果我从 linux 命令行使用“isql”(换句话说,只测试 odbc 连接),则查询有效。

我输入“isql Intranet”(intranet 是 odbc 连接的名称)我得到提示我输入 select * from temp_user 并在屏幕上收到我的 157 条记录。

所以我知道 odbc 配置设置正确。这是我为 oracle 所做的。

%oracle_home/hs/admin/inithsodbc.ora
HS_FDS_CONNECT_INFO = 内网
HS_FDS_TRACE_LEVEL = 关闭
HS_FDS_SHAREABLE_NAME = /usr/bin/ODBCConfig
%oracle_home/network/admin/tnsnames.ora
内联网 =
  (描述=
    (地址列表 =
      (地址 =(协议 = TCP)(主机 = 192.168.5.1)(端口 = 5432))
    )
    (连接数据 =
      (SID = 内联网)
    )
    (HS = 好的)

%oracle_home/network/admin/listener.ora
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = 内部网)
      (程序 = hsodbc)
      (SID_NAME = 内联网)
      (ORACLE_HOME = /home/oracle/app/OraHomeTEST)
听众 =
  (DESCRIPTION_LIST =
    (描述=
      (地址 =(协议 = TCP)(主机 = oracledb.andersen-const.com)(端口 = 5432))
    )
  )

我已经重新启动了监听器。它的状态如下。

服务总结...
服务“内部网”有 1 个实例。
  实例“INTRANET”,状态为 UNKNOWN,有 1 个用于此服务的处理程序...

然后我从数据库服务器命令行进入 sqlplus 并执行以下操作。

drop database link intranet;

创建数据库链接 Intranet 使用“intranet”连接到由密码标识的用户;

这是成功的。

但是,当我跑步时

 select * from temp_user@intranet

我收到错误

第 1 行的错误:
ORA-28545: 连接到代理时由 Net8 诊断出的错误
无法检索 NETWORK/NCR 消息 65535 的文本
ORA-02063: 前 2 行来自 INTRANET

我至少花了一天的时间回顾配置和尝试,但我总是收到这个错误。

大家有什么好的想法,

4

1 回答 1

1

“tnsping内网”报告什么?

您确定您的 hsodbc 程序位于网关安装的 Oracle_home/bin 目录中吗?另外,您的 LD_LIBRARY_PATH 设置是否正确?

我相信你的 LD_LIBRARY_PATH 应该是 $ORACLE_HOME/lib。抱歉,不确定,因为这些天我对 *Nix 做的不多。

于 2009-06-25T16:14:27.410 回答