メールの詳細(トピック表示)
山西です。
DBD::Oracle ネタが出たので、最近ちょっと難儀した Oracle 10g 環境での
利用についてのメモを。あ、Windows + ActivePerl(5.6/5.8)環境です。
Oracle 10g の最近のリリース(10.2.0.1.0)では Oracle 専用に Perl が
インストールされ PERL5LIB 環境変数も設定されます(サーバの場合)。
この状態で ActivePerl をデフォルトインストールすると、ppm を含む
ActivePerl のスクリプトも Oracle の Web 管理ツールや SQL*Plus まで
正常に動かなくなりました。
これは次のような事が原因であるようです。
* Oracle 用の Perl ライブラリが ActivePerl のそれと互換性がないため、
Oracle の Perl 用に設定された PERL5LIB システム環境変数があると
ActivePerl のスクリプト動作に支障がある。
* ActivePerl の実行パスを PATH に加えると、Oracle 用の Perl の利用に
支障があり、影響範囲は Oracle の各種ツールに及ぶ。
面倒ではありますが、以下のようにして回避しています。
* ActivePerl のインストール時に "Setup Options" のチェックをすべて外す。
(システムの PATH 環境変数に入れない。これで Oracle ツールが動く。)
* ActivePerl スクリプトの実行時にはローカルに PATH 環境変数に ActivePerl
のものを追加する。また、PERL5LIB 環境変数も解除する。
例:
C:\>SET PATH=%PATH%;C:\perl\bin
C:\>SET PERL5LIB=
C:\>ppm
C:\>perl sample.pl
(注) PERL5LIB 環境変数の解除は Perl スクリプト中では意味がない。
これで DBD::Oracle も ppm からインストールで普通に使えます。
# Oracle は DBI ではなく Oraperl を使っているみたい。
--
山西雅人
mailto:masato@…

