Oracleに接続するために作成したPerlスクリプトがあります。このスクリプトはPERL64がインストールされたマシン上で完璧に動作します。私はこのスクリプトをActiveState PerlAppを使ってEXEに変えようとしました。もう一度、私のマシン上で完全に動作します。実行可能ファイルがPerlを含まないマシンに置かれると、Oracleに接続するために必要なDLLがありません。Windows実行ファイルとしてコンパイルされたPerlスクリプトがOracleに接続しません
use DBI;
# CONFIG VARIABLES
our $database = "database.app.net";
our $host = "server.app.net";
our $port = "1522";
our $user = "SVC_app";
our $pw = 'Password';
# DATA SOURCE NAME
our $dsn = "dbi:Oracle:$host:$port/$database";
# PERL DBI CONNECT
our $connect = DBI->connect($dsn, $user, $pw);
# PREPARE THE QUERY
our $query = 'SELECT Blah FROM database."table" where "blah" = ?';
our $query_handle = $connect->prepare($query);
# EXECUTE THE QUERY
$query_handle->execute($value);
# BIND TABLE COLUMNS TO VARIABLES
$query_handle->bind_columns(undef, \$return);
# LOOP THROUGH RESULTS
while($query_handle->fetch()) {
#print "$return";
}
私が受け取るエラーは、次のとおりです。
はモジュールDBD :: Oracleの 'オート/ DBD /オラクル/ Oracle.dll' をロードできません:LOAD_FILE:指定されたモジュールはで見つけることができませんでした事前に/DynaLoader.pmラインは224
おかげ
私はPerlAppを使ったことがありませんが、[docs](http://docs.activestate.com/pdk/6.0/PerlApp.html#perlapp__2d_2dbind_file)は、あなたが '--bind'オプションを使用できることを示唆しています追加のDLLを含めることができます。ロードするためにコードを必要とするのか、それとも自動的に見つかるのかどうかはわかりません。 –
bindオプションを試しましたが、dllをインクルードしてtempディレクトリにスローするように見えます。しかし、アプリはそれがそこにあることを知らない。 –