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的图像类型的列