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

ROracle.dll is not a valid Win32 application

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

我查看了其他一些解决方案但没有成功,并验证了 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 用户的礼物,以弥补这个愚蠢的问题 post: 这是我在我的设施中传递的安装脚本,以促进该过程,我认为其他人可能会发现它有用。我们正在使用 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)