WindowsでOracleDBにOracle Instant ClientでODBC接続する
Windows7 (32-bit) に Oracle Instant Client 11.2.0.4.0 を入れる方法です。
前にWindows⇔Oracleのテスト環境を作ろうとしたときに、ちょっと困ったので書いておきます。
パッケージを入手
Oracleのサイトに行きます。
ダウンロードページに行きます。
規約に同意して、BasicとODBCのパッケージをダウンロードします。途中で「ダウンロードするならOracleの会員登録をしてね」的なことを言われたら会員登録してね。
以下のファイルを入手したら次に進みます。64bit版Windows用のだと、すこしファイル名が違うかもしれません。
- Basic → instantclient-basic-nt-11.2.0.4.0.zip
- ODBC → instantclient-odbc-nt-11.2.0.4.0.zip
インストール
入手したzipを解凍して中身を同じフォルダに入れます。アーカイバの設定によりますが、デフォルトでは両方とも同名の instantclient_11_2
フォルダに展開されるので、そのままでOKだと思います。
中身はこんな感じになります。ODBC_IC_Readme_Win.html
を読めばこのページは用無しです。
そしたら C:\Oracle
フォルダを作成して、そこに先程の instantclient_11_2
フォルダを移します。
※作らなくても C:\Oracle
フォルダがもうあったよって場合は中断してください。この方法を使わなくても接続できる気がするので、そのパソコンにOracleの何かを入れた人に相談してください。
当該フォルダの odbc_install.exe
に JA
オプションをつけて実行します。コマンドプロンプトで下記コマンドを実行してください (一瞬だけ黒窓がポップすると思います)。もしWindowsに『次の不明な発行元から~』と聞かれたらOKしてください。
ここでODBCデータソースアドミニストレーターを起動してインストール済みのODBCドライバを確認すると、Oracle in instantclient_11_2
がインストールされているのが確認できます。
ODBCデータソースアドミニストレーターは、スタートメニュー→『プログラムとファイルの検索』にODBCと入力→『データ ソース (ODBC)』から開けます。
しかしここで謎の罠があるので注意です。上記コマンド実行後、 なぜか instantclient_11_2
の sqresus.dll
が消えます。 この点は以下サイト様の記事がとっても参考になりました。
なので再度 instantclient-odbc-nt-11.2.0.4.0.zip
を解凍して、sqresus.dll
を取り出して移しておきましょう。
最後に環境変数をみっつほど設定します。もしふたつめとみっつめがすでにあったりしたら、やはり中断してそのパソコンにOracleの何かを入れた人に相談してください。
PATH
にC:\Oracle\instantclient_11_2
を追加NLS_LANG
にJAPANESE_JAPAN.JA16EUC
を設定TNS_ADMIN
にC:\Oracle
を設定 (接続先設定ファイル置き場なので任意です)
これでインストールは完了です。
接続設定
接続先を書いた tnsnames.ora
ファイルを作成します。上で設定した TNS_ADMIN
と同じ場所に置くので、ここでは C:\Oracle\tnsnames.ora
ということになります。
tnsnames.ora
の書き方ですが、上記は一例です。接続先のOracleのバージョンか何かによって書き方が異なるみたいなので、以降の手順でうまくいかなかったらググって修正してください。。。例えば以下の記事によると、サービス名も SERVICE_NAME
ではなく SID
で指定する場合があったりするそうです。
tnsnames.ora の SID と SERVICE\_NAME - ablog
データソース作成
すべて完了したら、データソースを作成します。インストールした Oracle in instantclient_11_2
をドライバとして設定します。(画像の)
データソース名は一応上で設定したデータソース名と同じにしてください (ここあまり試してないです)。TNSサービス名のプルダウンに、上で設定したデータソース名が表示されるはずなので選択します。表示されない場合、tnsnames.ora
の置き場所か書き方を見直してみてください。
日本語でインストールしなかったり、NLS_LANG
を設定し忘れると、このへんが英語表示になってた気がします。
ほかの設定はデフォルトでOKです。設定したら接続テストしてみましょう。接続先DBのユーザーIDとパスワードを入力して、『正常に接続できました』と表示されればOKです。
使ってみる
おまけですが、作成したデータソースで試し斬りします。ここではA5:SQL Mk-2を用います。私も使ってるよって人は、もし起動中なら一旦終了して、もう一度起動しなおしてから試してください。
データベースの追加で Oracle Database
を選択し、OCI経由 (Oracle Client利用)
に設定して、接続文字列に先程作成したデータソース名を入力します。ユーザーIDとパスワードを入力して接続テストします。
接続できたらOKです。お疲れ様でした。
もしダメだったら、試しに接続文字列に (接続先IP):(ポート番号)/(サービス名)
を入力して再度テストしてみてください。
これで接続できたとしたら、Oracle Instant Clientのインストール自体はできてるけど、データソースの作り方を間違えてるかもしれません。