DBI モジュールを使用して Oracle に接続するには、 /oracle/v10.2.0/lib を LD_LIBRARY_PATH に追加する必要があります。
perl スクリプトを実行する前にシェルで LD_LIBRARY_PATH を設定すると、すべて問題ありません。
しかし、スクリプトからは機能しません:
BEGIN {
$ENV{'LD_LIBRARY_PATH'}='/oracle/v10.2.0/lib';
}
use DBI;
スクリプトを実行すると、次のエラーが表示されます。
install_driver(Oracle) が失敗しました: モジュール DBD::Oracle の '/usr/apps/perl5/site_perl/5.8.8/i686-linux/auto/DBD/Oracle/Oracle.so' をロードできません: libclntsh.so.10.1 : 共有オブジェクト ファイルを開けません: No such file or directory at /usr/apps/perl5/5.8.8/i686-linux/DynaLoader.pm line 230. at (eval 3) line 3 Compilation failed in require at (eval 3) 3 行目。おそらく、必要な共有ライブラリまたは dll が /var/tmp/getTraceDB.pl 23 行目の期待される場所にインストールされていない可能性があります