2016-11-04 26 views
3

Oracleデータベースから1つのSQL Serverへのdbリンクの作成が苦労しています。そのためにMS SQL ServerデータベースをOracle 11gデータベースに接続します。

、私は以下の追加しました:ファイル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が** **サーバー\ネットワーク\ adminに配置され、initsqlUserConn.oraが**サーバの\ HSに置かれたファイル\管理者**

私は次のSQL文を持っている:

CREATE DATABASE LINK sqlUserConn CONNECT TO "USER" IDENTIFIED BY "PASSWORD" USING 'sqlUserConn'; 

そしてデシベルのリンクをテストするために、私はに似た何かを実行しています

このコマンドは、次のエラー発射された:明らかに

ORA-12154: TNS:could not resolve the connect identifier specified

を、私が何か間違ったことを行っている..しかし、私はやってユーザーの多くを見てきたように、まだ私はそれが...それが動作するはず得ることはありませんこのように

SQL ServerデータベースをOracle 11gにリンクする正しい解決方法を教えてもらえますか?

+0

SQL Serverデータベースを指すOracleボックスにデータソース名DSNを作成しましたか?それは分離して動作しますか? lsnrctl statusとは何ですか? –

+0

「オラクル・ボックス」の意味を理解していないので、Oracleデータベースは比較的新しいです。システムDSNをWindowsから参照している場合は、すでにsqlUserConnという名前のシステムDSNが作成されています。私はそれをtnspingしようとしましたが、偶然ではありません。 – rosuandreimihai

+0

TNSリスナー(およびその構成)は、Oracleサーバーへの接続のみを処理します。また、DBLinkはOracleにも接続できます。 –

答えて

0

まず、正しいDSNアーキテクチャ(32ビットまたは64ビット)を使用していることを確認してください。誤ったアーキテクチャを使用すると、エラーが発生します。 Windows上のOracleは、コマンドlsnrctl reloadを使用するか、lsnrctl stopを使用してからlsnrctl startを使用して、指定されたファイル(tnsnames、listenerなど)に置かれた情報をリフレッシュする手助けをしません。だから、唯一の解決策は再起動し、dblinkが動作するかどうかを確認することです。

関連する問題