Ошибка загрузки пакета ROracle в Windows 7 после установки

Я искал везде и следовал точным инструкциям, но столкнулся с этой ошибкой, когда загружаю библиотеку на свой компьютер с 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       

Я скачал двоичный файл ROracle для Windows с этой страницы: 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

Что-то еще мне не хватает? Как я могу заставить это работать?

У меня есть права администратора на все папки, включая пути к библиотеке.


person Gopala    schedule 09.03.2016    source источник


Ответы (2)


Вам необходимо установить Oracle Instant Client, чтобы исправить эту ошибку, как указано на https://docs.oracle.com/cd/E67822_01/OREAD/apx_typelicinstall.htm#OREAD274.

Ваши переменные OCL_LIB64 и PATH указывают на какой-то каталог \bin, тогда как они должны указывать на каталог распаковки Instant Client (в моем случае внутри которого нет \bin).

person Borislav Aymaliev    schedule 25.09.2017

Вам нужно добавить каталог Oracle Client 32 и 64 бит с папкой SDk, а затем путь к переменным среды Windows System. Также необходимо установить пакет rjava (установить 64-разрядную версию Java) и установить JAVA_HOME в R sys.setenv().

install.packages("rJava")       #Install Java 64 bits
library(rJava)                  #Not Errors

Sys.setenv("OCI_LIB64"="C:/instantclient_12
C:\instantclient_12_2_64bits;
C:\instantclient_12_2_64bits\sdk;
C:\instantclient_12_2_32bits;
C:\instantclient_12_2_32bits\sdk;
64bits") Sys.setenv("OCI_LIB32" = "C:/instantclient_12
C:\instantclient_12_2_64bits;
C:\instantclient_12_2_64bits\sdk;
C:\instantclient_12_2_32bits;
C:\instantclient_12_2_32bits\sdk;
64bits") Sys.setenv("ORACLE_HOME" = "C:/instantclient_12
C:\instantclient_12_2_64bits;
C:\instantclient_12_2_64bits\sdk;
C:\instantclient_12_2_32bits;
C:\instantclient_12_2_32bits\sdk;
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)

Последнее сообщение в процессе установки должно быть DONE!

В пути среды системы Windows:

C:\instantclient_12_2_64bits;
C:\instantclient_12_2_64bits\sdk;
C:\instantclient_12_2_32bits;
C:\instantclient_12_2_32bits\sdk;

надеюсь, это сработает!

person David M    schedule 02.04.2020
comment
Поскольку ROracle не использует какой-либо интерфейс Java или JDBC, нет необходимости устанавливать JRE. - person Christopher Jones; 04.04.2020
comment
Возможно, но я пытался установить пакет ROracle в течение недели, и эта установка, наконец, сработала. - person David M; 04.04.2020