필자는 필자가 작성한 Perl 스크립트가 Oracle에 연결되어 있습니다. 이 스크립트는 PERL64가 설치된 컴퓨터에서 완벽하게 작동합니다. ActiveState PerlApp를 사용하여이 스크립트를 EXE로 변환하려고했습니다. 다시 말하지만, 내 컴퓨터에서 완벽하게 작동합니다. 실행 파일이 Perl을 포함하지 않는 시스템에 있으면 DLL이 Oracle에 연결하는 데 필요합니다.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 디렉토리에 던져 버리는 것으로 보입니다. 그러나 앱은 그게 거기 있다는 것을 모릅니다. –