这是How to install ROracle package on Windows 7?
的后续内容我在尝试构建ROracle时出现以下错误
**测试是否可以加载已安装的软件包
inDL(x,as.logical(local),as.logical(now),...)出错: 无法加载共享对象'D:/Users/a101/Documents/R/win-library/3.0/ROracle/libs/x64/ROracle.dll': LoadLibrary失败:%1不是有效的Win32应用程序。
我安装了RTools和64位Oracle Instantclient
我从Admin privieledged命令行执行以下命令:
设置OCI_LIB64 = C:/ Oracle / instantclient_12_1_x64
设置OCI_INC = C:/ Oracle / instantclient_12_1_x64 / sdk / include
“C:/ Program Files / R / R-3.0.0 / bin / x64 / R”CMD INSTALL - 建立ROracle_1.1-10.tar.gz
我一直在搜索,我发现这个错误是由混合模式构建引起的。即具有64位Oracle客户端库的32位R,反之亦然。我已经看了很多(很多)小时,我相信我正在使用所有64位(OS,R,Oracle客户端库)。所有跟踪消息似乎都指示64位。
关于我可能遗失的任何想法?
答案 0 :(得分:1)
要运行依赖步行,请使用Dependecy Walker,在此应用中选择打开ROracle.dll。我有同样的问题,因为ROracle.dll正在搜索OCI x64(Oracle客户端),而我的PC上安装了x86版本。
答案 1 :(得分:0)
我遇到了同样的问题,64位窗口和R ...
因为我在几天之前将ROracle
从32位转移到了64位。更改OCI_LIB64,OCI_INC并将64位即时客户端dir添加到env变量Path
后,它在R和RStudio中工作正常。
但我之前设置了一个任务调度程序,使用Rscript.exe每天运行一个RCode。自从具有相同错误的转换后该任务失败:“inDL(x,as.logical(local),as.logical(now),...)中的错误:无法加载共享对象'E:/ app / R_lib / 3.4 / ROracle / libs / x64 / ROracle.dll':LoadLibrary失败:%1不是有效的Win32应用程序。“
我的最终解决方案是重新启动计算机...并且任务调度程序再次工作....猜测应该暂时存储一些32位文件,并且在使用64位ROracle之前需要删除...
答案 2 :(得分:0)
您需要将Oracle Client 32位和64位witk SDK文件夹目录添加到Windows System环境变量路径。还需要安装rjava包(安装Java 64位)并在R sys.setenv()中设置JAVA_HOME。
install.packages("rJava") #Install Java 64 bits
library(rJava) #Not Errors
Sys.setenv("OCI_LIB64"="C:/instantclient_12_2_64bits")
Sys.setenv("OCI_LIB32" = "C:/instantclient_12_2_64bits")
Sys.setenv("ORACLE_HOME" = "C:/instantclient_12_2_64bits")
Sys.setenv(JAVA_HOME='C:/Program Files/Java/jre1.8.0_241')
install.packages(paste0(path,"/ROracle_1.3-1.tar.gz"), repos = NULL, type = "source")
library(ROracle)
安装过程中的最后一条消息应该已完成!
在Windows系统环境路径中:
C:\instantclient_12_2_64bits;
C:\instantclient_12_2_64bits\sdk;
C:\instantclient_12_2_32bits;
C:\instantclient_12_2_32bits\sdk;
希望这行得通!