Oracle 10G (UNIX 上) から SQL Server データベース (Windows 上) に接続しようとしています。私はマニュアルを見てきましたが、ドキュメントに従うのが非常に難しいことを認めます。使用するオプションがいくつかあるようですが、各オプションがどのように機能するかを説明しているドキュメントはありません。
例として、接続する必要があるデータベース (つまり、SQL Server データベース) に関する次の情報が提供されています。
- ユーザー名
- パスワード
- データベース名 [データベース名が data_extract であると仮定します]
上記を接続するために、次の変更を加えました
$ORACLE_HOME/hs/admin/inithsodbc.ora
HS_FDS_CONNECT_INFO = data_extract
HS_FDS_TRACE_LEVEL = 0
$ORACLE_HOME/network/admin/tnsnames.ora
sqlserver.db =
(DESCRIPTION =
(ADDRESS = (protocol=tcp)(host=10.10.10.10)(port=49400))
(connect_data = (sid=data_extract))
(hs=ok)
)
$ORACLE_HOME/network/admin/listener.ora
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
よくわからないことがいくつかあります
- Oracle db から sql server db への sql サーバーにアクセスするためのユーザー名とパスワードはどこで指定しますか?
- インターネットでいろいろ読んだところ、DSN データソースについて言及している人が何人かいます。私が持っている情報だけで十分だと言われました。これは正しいですか、それとも何か他のものが必要ですか?
- inithsodbc.ora および tnsnames.ora で指定された sid は、実際には SQL Server データベースです。これは正しいです?
上記のヘルプをいただければ幸いです。ありがとう