![](/img/trans.png)
[英]Is it possible to create a database link between an Oracle Express 11g database to a SQL Server or do I need full 11g?
[英]Connect MS SQL Server database to Oracle 11g database
我正在努力创建从Oracle数据库到一个SQL Server的数据库链接。
为此,我添加了以下内容:
在文件tnsnames.ora
:
sqlUserConn =
(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))
(CONNECT_DATA=(SID=sqlUserConn))
(HS=OK)
)
在文件listener.ora
:
(SID_DESC=
(SID_NAME=sqlUserConn)
(ORACLE_HOME=C:\oraclexe\app\oracle\product\11.2.0\server)
(PROGRAM=dg4odbc)
)
在文件sqlnet.ora
:
SQLNET.AUTHENTICATION_SERVICES = (NTS)
NAMES.DIRECTORY_PATH= (TNSNAMES, ONAMES, HOSTNAME)
在文件initsqlUserConn.ora
:
HS_FDS_CONNECT_INFO = sqlUserConn
HS_FDS_TRACE_LEVEL = OFF
文件tnsnames.ora,sqlnet.ora和listener.ora放在** server \\ network \\ admin **中,initsqlUserConn.ora放在** server \\ hs \\ admin **中
我有以下sql语句:
CREATE DATABASE LINK sqlUserConn CONNECT TO "USER" IDENTIFIED BY "PASSWORD" USING 'sqlUserConn';
然后测试数据库链接,我正在运行类似于:
Select * from table@sqlUserConn
此命令触发以下错误:
ORA-12154:TNS:无法解析指定的连接标识符
显然,我做错了什么..但我仍然没有得到它...它应该工作,因为我看到很多用户这样做这样
有人能指出我将SQL Server数据库链接到Oracle 11g的正确解决方案吗?
首先,确保使用正确的DSN架构(32或64位)。 如果使用不正确的架构,它将触发错误。 Windows上的Oracle有一个奇怪的行为,因此命令lsnrctl reload
甚至使用lsnrctl stop
然后lsnrctl start
不会帮助刷新指定文件中放置的信息(tnsnames,listener等等)。 所以唯一的解决方案是重启,然后检查dblink是否有效。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.