簡體   English   中英

將MS SQL Server數據庫連接到Oracle 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM