タグ:データベース ( 1 ) タグの人気記事

Oracle Database Gateway for ODBC

Oracle Database Gateway for ODBCをoracle11gに設定してSqlserver2005と接続してみる。
設定するPCはVista Ultimate
あらかじめODBCのシステムDSN「mssql」を定義しておく。sqlserverの接続データベースはpubs。

(1)initXXX.oraファイルの編集
C:\app\nakagawa_takashi\product\11.1.0\db_1\hs\adminにinitmssql.oraを作成。中身は

HS_FDS_CONNECT_INFO = mssql

(2)listener.oraに以下のように編集

LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = nora01)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = nora01)(PORT = 1522))

)
)
SID_LIST_LISTENER=
(SID_LIST=
(sid_desc=
(sid_name=mssql)
(ORACLE_HOME=C:\app\nakagawa_takashi\product\11.1.0\db_1)
(program=dg4odbc)
)
)

(3)tnsnames.oraに以下の内容を追加
mssql=
(description=
(address=(protocol=tcp)(host=nora01)(port=1522))
(connect_data=(sid=mssql))
(hs=ok)
)

ここでオラクル、オラクルリスナーを再起動。

sqlplusを立ち上げる。
(4)データベースリンク作成。接続ユーザーとパスワードは適宜。

create database link mssql connect to xxx idnetified by xxx using 'mssql';

(5)select文発行

select * from authors@mssql;

行1でエラーが発生しました。:
ORA-28500:
OracleからOracle以外のシステムへの接続で次のメッセージが戻されました:
[Microsoft][SQL Native
Client]他のコマンドの結果のために、接続がビジー状態になっています。
ORA-02063: 先行のエラー・メッセージを参照してください2 lines(MSSQL)。

いろいろ調べたり、試したりしたところスキーマを指定する必要があるみたい。

select * from dbo.authors@mssql;

ところが、

select au_id from dbo.authors@mssql;

だと

行1でエラーが発生しました。:
RA-00904: "AU_ID": 無効な識別子です

どうもカラム名はケースセンシティブなようだ。

select "au_id" from dbo.authors@mssql;

これで通った。

まずはここまで。
[PR]
by nora1962 | 2009-09-11 00:57 | PC