ROracle.dll is not a valid Win32 application

一曲冷凌霜 提交于 2020-01-04 11:00:27

问题


It's a tale as old as ROracle... I just can't seem to find a solution to this problem. I've uninstalled JAVA, R, and RTools and reinstalled all 3 with only 64bit versions. The build for ROracle goes fine, but I get the following error message when trying to load the package.

I've looked at some of the other solutions without success and verified a 64 bit install of Oracle Client. Thoughts?

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’


回答1:


Turned out that the IT department pushed a 32bit build of Oracle client instead of 64bit. If you get this message, all the paths are correct, and you're sure you are using 64 bit R/Java, then try building in 32bit mode.

Here is a present to ROracle users to make up for this silly post: This is the install script I am passing around within my facility to facilitate the process, thought others might find it useful. We are using windows 7, some have x64. All are using 32bit Oracle Client.

# 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)


来源:https://stackoverflow.com/questions/40922243/roracle-dll-is-not-a-valid-win32-application

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!