Oracleデータベースに接続し、テキストファイルを開き、データベーステーブルのファイルからデータをロードするperlスクリプトがあります。スクリプトは、開発マシン(Windows xp 32ビット)で完全に機能しますが、スクリプトをにロードすると、本番サーバー(Windows 2003 64ビット)をコマンドラインから実行すると、perl.exeが開きます-コンポーネントウィンドウを見つけることができません、メッセージは言います
OCI.dllが見つからなかったため、このアプリケーションを起動できませんでした。アプリケーションを再インストールすると、この問題が解決する場合があります。
コマンドライン出力は次のとおりです。
install_driver(Oracle)が失敗しました:モジュールDBD :: Oracleの「C:/Perl64/lib/auto/DBD/Oracle/Oracle.dll」をロードできません:load_file:%1はC:/Perl64で有効なWin32アプリケーションではありません/lib/DynaLoader.pm 191行目。at(eval 14)line3コンパイルはrequire at(eval 14)行3で失敗します。おそらく、必要な共有ライブラリまたはdllは、c:\ warranty\warrantyImport.pl行で期待される場所にインストールされません。 15
oracleクライアントを再インストールしました。アクティブなperlとoracleクライアントの両方をアンインストールしてから、perlの前にoracleクライアントをインストールしようとしました。これにより、問題が発生する可能性があります。
パーミッションの可能性があると思ったので、oci.dllを開くための簡単なperlスクリプトを作成し、できない場合はエラーを発生させました。正しく開くことができました。
C:\ oracle \ product \ 10.2.0 \ client_1\binがPATH環境変数に含まれていることを確認しました。
SQLPlusを使用してデータベースに接続できます
OCI.dllをperlスクリプトと同じディレクトリに追加しました。
そして、私はついにアイデアを使い果たしました....誰かが何かを提案できますか、私はそれを機能させるために私の髪を引き裂いています。
詳細サーバーはActivePerl5.14.1ビルド1401(64ビット)を実行しています。Oracleデータベースは10gです。Oracleクライアントは10.2.0です。