OracleのODBC接続

Oracle9iのサーバにODBC接続してみる。
なかなかつなげられない。

DSNの設定ができない

Oracle10gのInstantClientをインストールしてDSNの設定画面を表示できなかった。
なぜ?
保留。

接続できない

Oracle10gの管理ツールをインストールするとDSNの設定はできた。
必要情報を入力して接続テスト。

接続できませんでした。
SQLState=08004
[Oracle][ODBC][Ora]ORA-12154: TNS: 指定された接続識別子を解決できませんでした。

なんだこれ?
接続識別子(SID)はあるはず・・・。

TNSの設定

Oracle Net Managerを使用してTNSを設定した。
DSNの接続テストを実施すると

Unable to connect
SQLState=S1000
[Oracle][ODBC][Ora]ORA-12705: Cannot access NLS data files or invalid environment specified

http://biz.rivus.jp/oerrs/ora_12705.html
を見ると環境変数が間違っているんじゃないか?とのこと。
何か変な設定をしてしまったのか?
とりあえず書いてあるとおりにしてみる。

環境変数の変更

ユーザの環境変数

NLS_LANG=American_Japan.JA16EUCTILDE

と設定して、DSNの接続テストを実施するとOKが出た。
しかし、Windowsの場合はあらかじめレジストリに設定してあるので改めて設定する必要なないと書いてある。
なぜ設定する必要があったのか?やはりどこかイカレてしまっているのか?
regeditしてみると、NLS_LANG=NAになっている。なんでやねん。
でも、NAが間違っているのかは知らない。

ん?

ちょっとまて。レジストリOracleの項目がほとんどOra92になってる。
これか!
**9iのインストール
9iのクライアントはトライアル版が配布されているのでそれをインストール。
管理ツールのインストールをしてDSNの設定。
接続テスト・・・OK!

結局

9iのクライアントじゃなきゃダメかもしれない。
マシンにOracleHomeが3つもできてしまった。

困ったこと

9iはWindows2003R2x64に対応していない。
つながらなきゃ困る。

まとめる

  1. TNSが無かったのでつながらなかった。
  2. Oracle9iを入れたので10gがつながらなくなった

普通に10gを入れてTNSを設定すればつながるということか。