安装后,Windows 7上的ROracle程序包加载失败

时间:2016-03-09 19:39:05

标签: r roracle

我到处查看并按照提供的确切说明操作,但在我的Windows 7计算机上加载库时遇到此错误:

Error in inDL(x, as.logical(local), as.logical(now), ...) : 
  unable to load shared object 'C:/Program Files/R/R-3.2.3/library/ROracle/libs/x64/ROracle.dll':
  LoadLibrary failure:  %1 is not a valid Win32 application.

Error: package or namespace load failed for ‘ROracle’

这是我的R版本:

platform       x86_64-w64-mingw32          
arch           x86_64                      
os             mingw32                     
system         x86_64, mingw32             
status                                     
major          3                           
minor          2.3                         
year           2015                        
month          12                          
day            10                          
svn rev        69752                       
language       R                           
version.string R version 3.2.3 (2015-12-10)
nickname       Wooden Christmas-Tree       

我从此页面下载了适用于Windows的ROracle二进制文件: http://www.oracle.com/technetwork/database/database-technologies/r/roracle/downloads/index.html

我使用的是ROracle 1.2-1版本。

我的OCI_LIB64和PATH环境变量如下:

OCL_LIB64=C:\Oracle\product\11.2.0\client_1\bin
PATH:C:\Oracle\product\11.2.0\client_1;C:\Oracle\product\11.2.0\client_1\bin

我还缺少什么?我怎样才能让它发挥作用?

我拥有所有文件夹的管理员权限,包括库路径。

2 个答案:

答案 0 :(得分:0)

您需要安装Oracle Instant Client来修复此错误,如https://docs.oracle.com/cd/E67822_01/OREAD/apx_typicalinstall.htm#OREAD274所示。

你的OCL_LIB64和PATH变量指向某种\ bin目录,它们应指向Instant Client解压缩目录(在我的情况下没有\ bin)。

答案 1 :(得分: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;

希望这行得通!