ROracle.dll不是有效的Win32应用程序

时间:2016-12-01 23:24:26

标签: roracle

这是一个像ROracle一样古老的故事......我似乎无法找到解决这个问题的方法。我已经卸载了JAVA,R和RTools,并重新安装了只有64位版本的所有3个版本。 ROracle的构建很顺利,但在尝试加载包时出现以下错误消息。

我看了一些其他解决方案但没有成功,并验证了64位Oracle客户端的安装。想法?

  

加载必需的包:DBI   inDL(x,as.logical(local),as.logical(now),...)出错:     无法加载共享对象'C:/ Program Files / R / R-3.3.2 / library / ROracle   /libs/x64/ROracle.dll“:     LoadLibrary失败:%1不是有效的Win32应用程序。

     

错误:'ROracle'的包或名称空间加载失败

1 个答案:

答案 0 :(得分:2)

原来,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)