ROracle.dll不是有效的Win32应用程序
问题描述:
这是一个和ROracle一样古老的故事......我似乎无法找到解决此问题的解决方案。我卸载了JAVA,R和RTools,并且只用64位版本重新安装了全部3个。 ROracle的构建进展良好,但在尝试加载包时收到以下错误消息。ROracle.dll不是有效的Win32应用程序
我已经看过一些其他解决方案没有成功,并验证了64位安装的Oracle客户端。思考?
Loading required package: DBI Error in inDL(x, as.logical(local), as.logical(now), ...) : unable to load shared object 'C:/Program Files/R/R-3.3.2/library/ROracle /libs/x64/ROracle.dll': LoadLibrary failure: %1 is not a valid Win32 application.
Error: package or namespace load failed for ‘ROracle’
答
原来,IT部门推送了32位版本的Oracle客户端而不是64位。如果您收到此消息,则所有路径都是正确的,并且您确定使用的是64位R/Java,然后尝试在32位模式下构建。
这是一个给ROracle用户的礼物来弥补这个愚蠢的帖子: 这是我在设施内传递的安装脚本,以促进过程,认为其他人可能会觉得它有用。我们使用的是Windows 7,有些则有x64。所有使用32位Oracle客户端。
# First install RTools w/ path modifications during the install
# Verify file paths
filePathofPackage <- "YOUR/FILE/PATH/ROracle_1.3-1.tar.gz"
if(Sys.getenv("R_ARCH") != "/i386") stop("Process must be run in 32bit version of R")
Sys.setenv(OCI_LIB32 = "C:\\Oracle\\product\\11.2.0\\client_1\\bin")
Sys.setenv(OCI_INC = "C:\\Oracle\\product\\11.2.0\\client_1\\oci\\include")
install.packages(filePathofPackage, repos = NULL, verbose = T, clean = T)