in reply to Error Message "Can't load 'C:/Perl64/lib/auto/DBD/Oracle/Oracle.dll" While Connecting to Oracle

Seems there is something about this issue in the manual of DBD::Oracle:

Most importantly you will have to add the Instant Client directory to your path like this c:\DBD-Oracle>path = c:\IC_11;%path% If you do not do this step you will run into the dreaded Can't load 'C:/Perl/lib/auto/DBD/Oracle/Oracle.dll' for module DBD::Oracle: load_file:%1 is not a valid Win32 application at C:/Perl/lib/DynaLoader.pm line 202. If you do not do this step you will run into the dreaded Can't load 'C:/Perl/lib/auto/DBD/Oracle/Oracle.dll' for module DBD::Oracle: load_file:%1 is not a valid Win32 application at C:/Perl/lib/DynaLoader.pm line 202

Don't know if this helps. Regards, Karl

«The Crux of the Biscuit is the Apostrophe»

  • Comment on Re: Error Message "Can't load 'C:/Perl64/lib/auto/DBD/Oracle/Oracle.dll" While Connecting to Oracle

Replies are listed 'Best First'.
Re^2: Error Message "Can't load 'C:/Perl64/lib/auto/DBD/Oracle/Oracle.dll" While Connecting to Oracle
by Anonymous Monk on Jan 28, 2014 at 01:43 UTC

    Thanks for the many thoughtful responses to my question.

    I have not found a root cause for the problem however, I have found a workaround by installing the 32 bit version of ActiveState Perl and using it rather than the 64 bit version.

    With 32 bit Perl, "$dbh = DBI->connect("dbi:Oracle:host=$host;sid=$sid;port=$port", $user, $passwd);" performs without complaining and then executes SQL and returns the answer set.

    -Tony

      I have found a workaround by installing the 32 bit version of ActiveState Perl and using it rather than the 64 bit version

      This is further indication that the oracle dll that Perl/lib/auto/DBD/Oracle/Oracle.dll tries to load is 32-bit (as already suggested by others) and therefore can't be loaded by a 64-bit perl.

      Cheers,
      Rob