Oracle 10G(UNIXの場合)からSQL Serverデータベース(Windowsの場合)に接続しようとしています。私はマニュアルを見ましたが、ドキュメントを理解するのが非常に難しいと感じていることを認めます。使用するオプションはいくつかあるようですが、各オプションがどのように機能するかを説明しているドキュメントはありません。
例として、接続する必要のあるデータベース(つまり、SQL Serverデータベース)に関する次の情報が提供されています。
上記を接続するために、私は次の変更を加えました
HS_FDS_CONNECT_INFO = data_extract
HS_FDS_TRACE_LEVEL = 0
sqlserver.db =
(DESCRIPTION =
(ADDRESS = (protocol=tcp)(Host=10.10.10.10)(port=49400))
(connect_data = (sid=data_extract))
(hs=ok)
)
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
よくわからないことがいくつかあります
上記の助けをいただければ幸いです。ありがとう
OracleUNIXマシンで構成する必要のあるDataDirectドライバーを使用しました。 SQL Serverを表示できるようにするには、UNIXでODBC接続を作成する必要があります(少なくとも、これは常に私が行ってきた方法です)。
SQL Serverへのデータベースリンクを作成するには、以下のように、接続名とパスワードを二重引用符で囲む必要があります。
create database link mysqlink
connect to "myuser" identified by "mypassword" using 'servername';