ora92->OracleInstantClientによる接続へ変更
ora92->OracleInstantClientによる接続変更
はじめに
windows環境でoracleクライアントからoracleへ接続する時の話。
これまでoracleクライアントでoracleへ接続していたが、
ローカルでphp5.3からoracleへ接続することになった。
apacheとphpをwindowsに入れて起動。
php.iniで下記のように設定し、php_oci8.dll
を使用する場合、
※[PHP]
extension=php_oci8.dll
「'C:/PHP/ext\php_oci8.dll' - 指定されたモジュールが見つかりません。」
というエラーが出力。
wiki等で調べてみると
「現状 、oci8拡張モジュールを利用する上での制約(仕様)として
Oracle 10g以降のクライアント、もしくはInstant Clientが必要になります。」
とのこと。
Oracle 10gのクライアントを入れるか、Instant Clientで
接続するように変更せねばならないらしい。
以下、ora92->Instant Clientに変更する手順を記載
作業手順
- 2.Oracleのページから下記3つをダウンロード
http://www.oracle.com/technetwork/jp/topics/winsoft-087812-ja.html
instantclient-basic-win32-11.2.0.1.0.zip
instantclient-odbc-win32-11.2.0.1.0.zip
instantclient-sqlplus-win32-11.2.0.1.0.zip
作成したinstantclient以下に展開。(重複は上書きでOK)
- 3.tnsnames.oraの作成
C:\oracle\ora92\network\ADMIN\tnsnames.oraを
C:\oracle\instantclient\network\ADMIN\tnsnames.ora
にコピー。
- 4.環境変数を変更
「システムプロパティ」−>「詳細設定」ー>「環境変数」
のシステム環境変数
Passの先頭にC:\oracle\instantclient;を追記
(先頭に追記ってのがポイント。先にora92等が記載されていた場合、そっちが優先されてしまう)
TNS_ADMINにC:\oracle\instantclientを作成
NLS_LANGにJapanese_Japan.JA16SJISを作成
- 5.マシンを再起動