将MS SQL Server数据库连接到Oracle 11g数据库

时间:2016-11-04 14:45:33

标签: sql-server oracle oracle11g

我正在努力创建从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';

然后测试db链接,我正在运行类似于:

的东西
Select * from table@sqlUserConn

此命令触发以下错误:

  

ORA-12154:TNS:无法解析指定的连接标识符

显然,我做错了什么......但我仍然没有得到它......它应该可行,因为我看到很多用户这样做了

有人能指出我将SQL Server数据库链接到Oracle 11g的正确解决方案吗?

1 个答案:

答案 0 :(得分:0)

首先,确保使用正确的DSN架构(32或64位)。如果使用不正确的架构,它将触发错误。 Windows上的Oracle有一个奇怪的行为,因此命令lsnrctl reload或甚至使用lsnrctl stop然后lsnrctl start将无助于刷新指定文件中的信息(tnsnames,listener等)。 )。因此,唯一的解决方案是重新启动,然后检查dblink是否正常工作。