遇到Perl 5.20.2和Oracle :: DBD的问题,在尝试连接到Ora 12C DB时出现以下错误,用尽了如何识别错误的想法 .
install_driver(Oracle) failed: Can't load 'C:/Perl/site/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 194.
at (eval 72) line 3.
Compilation failed in require at (eval 72) line 3
我的环境如下
-
Perl -v - 这是为MSWin32-x86-multi-thread-64int构建的perl 5,版本20,subversion 2(v5.20.2)
-
操作系统是Win 2008 R2 SP1
-
Ora客户端是12.1.0(64位)
Windows环境变量
ORACLE_HOME = C:\ Oracle12c \产品\ 12.1.0 \ client_1与
路径= C:\ Oracle12c \产品\ 12.1.0 \ Client_1与\ BIN; C:\ Perl的\网站\ BIN; C:\ Perl的\ BIN; C:\ WINDOWS \ SYSTEM32; C:\ WINDOWS; C:\ WINDOWS \ System32 \ Wbem; C:\ Windows \ System32 \ WindowsPo werShell \ v1.0 ; c:\ dmake; D:\ NTRESKIT
TNS_ADMIN = C:\ Oracle12c \产品\ 12.1.0 \的Client_1 \ BIN
2 回答
想出来......问题不是文件许可问题,线索是在“ ...not a valid Win32 application ”的措辞中 .
我删除了Oracle 12c 64位客户端,然后安装了Oracle 12c 32位客户端,您也可以安装11g驱动程序(显然Oracle客户端支持一个版本,一个版本支持) .
我需要完整的12c Ora客户端安装程序,因为我需要访问sqlloader等数据库工具,请注意12c Oracle 32位安装程序中存在错误,必须修改install / oraparam.ini并替换MSVCREDIST_LOC = vcredist_x64.exe使用MSVCREDIST_LOC = vcredist_x86.exe,花了一段时间找到安装程序,链接到这里,http://www.oracle.com/technetwork/database/enterpriseedition/downloads/database12c-win64-download-2297732.html,网址底部的32位驱动程序)
此外,还要添加ORACLE_HOME Win env路径非常重要,我还将Oracle客户端添加到Path并确保它在我的Windows路径中的Perl条目之前 .
除了上面的评论,请在stackoverflow上查看以下内容:
Perl_and_Oracle_DBD