我到处查看并按照提供的确切说明操作,但在我的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
我还缺少什么?我怎样才能让它发挥作用?
我拥有所有文件夹的管理员权限,包括库路径。
答案 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;
希望这行得通!