Oracle 通用数据库链接不工作

Posted

技术标签:

【中文标题】Oracle 通用数据库链接不工作【英文标题】:Oracle Generic DB Link not working 【发布时间】:2009-06-25 15:55:21 【问题描述】:

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

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

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

大家有什么好的想法,

【问题讨论】:

isql 是什么工具? 【参考方案1】:

“tnsping 内网”报告什么?

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

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

【讨论】:

抱歉忘记添加了。它报告以下内容。适用于 Linux 的 TNS Ping 实用程序:版本 10.2.0.3.0 - 生产于 2009 年 6 月 25 日 09:15:12 版权所有 (c) 1997, 2006, Oracle。版权所有。使用的参数文件:使用 TNSNAMES 适配器解析别名尝试联系 (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.5.1)(PORT = 5432))) (CONNECT_DATA = (SID = INTRANET) ) (HS = OK)) OK (0 毫秒) 好吧看起来可能是我的 ld_library_path 这里是最新的。这条路应该是什么。 [oracle@oracledb ~]$ hsodbc [oracle@oracledb ~]$ which hsodbc ~/app/OraHomeTEST/bin/hsodbc [oracle@oracledb ~]$ echo $LD_LIBRARY_PATH echo 命令不返回任何内容。

以上是关于Oracle 通用数据库链接不工作的主要内容,如果未能解决你的问题,请参考以下文章

为啥oracle数据库链接不显示来自sql server的图像类型的列

QT基于mysql数据库的链接-全网最强万能通用法

PHP v5.2.6 链接远程Oracle数据库

iOS 13 > 应用程序被终止且不在后台时,通用应用程序链接不起作用

在 Oracle PL/SQL 视图中管理 DB 链接

Firebase 通用链接已禁用且无法正常工作 (iOS)