如何解决通过数据库链接将Oracle连接到SQL Server
| 我正在尝试从Oracle 10G(在UNIX上)连接到SQL Server数据库(在Windows上)。我已经看过手册,并且我承认我发现文档很难理解。似乎有几个选项可以使用,但是没有文档描述每个选项的工作方式。 举例来说,我得到了有关我需要连接的数据库(即SQL Server数据库)的以下信息 用户名 密码 数据库名称[假设数据库名称为data_extract] 为了连接上面我做了以下更改 $ ORACLE_HOME / hs / admin / inithsodbc.ora HS_FDS_CONNECT_INFO = data_extract
HS_FDS_TRACE_LEVEL = 0
$ ORACLE_HOME / network / admin / tnsnames.ora
sqlserver.db =
(DESCRIPTION =
(ADDRESS = (protocol=tcp)(host=10.10.10.10)(port=49400))
(connect_data = (sid=data_extract))
(hs=ok)
)
$ ORACLE_HOME / network / admin / listener.ora
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = merlin)(PORT = 1525))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /u/app/oracle/product/10.2.0/db)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = db1.mydb.co.uk)
(ORACLE_HOME = /u/app/oracle/product/10.2.0/db)
(SID_NAME = billdb)
)
(SID_DESC =
(SID_NAME = data_extract)
(ORACLE_HOME = /u/app/oracle/product/10.2.0/db)
(program = hsodbc)
)
)
注意:在listener.ora中,我仅添加了最后一个SID_DESC条目。
然后,我继续创建数据库链接,如下所示
create database link sqlservdb using \'sqlserver.db\';
当我尝试访问表时,出现以下错误
sqlplus> select * from TESTTABLE@sqlservdb;
select * from TESTTABLE@sqlservdb
*
ERROR at line 1:
ORA-28545: error diagnosed by Net8 when connecting to an agent
Unable to retrieve text of NETWORK/NCR message 65535
ORA-02063: preceding 2 lines from ORASQLSERVER
我不确定的几件事
我在哪里指定用户名和密码来从oracle数据库访问sql服务器数据库
在互联网上阅读后,我可以看到有人引用了DSN数据源。有人告诉我,我所需要的信息就是全部。这是正确的还是我需要其他东西?
我在inithsodbc.ora和tnsnames.ora中指定的sid实际上是sql server数据库。它是否正确?
以上任何帮助将不胜感激。谢谢
解决方法
我使用了必须在Oracle UNIX计算机上配置的Data Direct驱动程序。您必须在UNIX中创建ODBC连接才能看到SQL Server。 (至少这一直是我做到的方式)
,为了创建到SQL Server的数据库链接,必须将连接名和密码放在双引号之间,如下所示:
create database link mysqlink
connect to \"myuser\" identified by \"mypassword\" using \'servername\';
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。