ROracle Ошибка в .oci.Driver - PullRequest
0 голосов
/ 18 мая 2018

Я пытаюсь использовать ROracle.Моя версия базы данных Oracle - Oracle Database 12c Release 12.1.0.1.0 - 64-битная версия, и я установил Instant Client и SDK для версии 12.1.0.2.0 (12.1.0.1.0 недоступна на сайте Oracle).

Я могу получить доступ к базе данных Oracle через Oracle SQL Developer без каких-либо проблем.Я получаю сообщение об ошибке в RStudio:

Error in .oci.Driver(.oci.drv(), interruptible = interruptible, unicode_as_utf8 = unicode_as_utf8,  : 

. Если это полезно, я установил Instant Client и SDK здесь: C: \ oreclient_install_dir \ instantclient_12_1

Я использую Windowsмашина и я следовали инструкциям на CRAN: http://cran.us.r -project.org / web / packages / ROracle / INSTALL Включая добавление переменных среды.

После некоторого поиска (например, здесь ) похоже, что мне нужно установить LD_LIBRARY_PATH, ORACLE_HOME и "OCI_LIB", что я и сделал:

Sys.setenv(LD_LIBRARY_PATH="C:/oreclient_install_dir/instantclient_12_1")
Sys.setenv("ORACLE_HOME" = "C:/oreclient_install_dir/instantclient_12_1")
Sys.setenv("OCI_LIB" = "C:/oreclient_install_dir/instantclient_12_1")

Появляется та же ошибкавверх.Я, вероятно, не делаю это правильно, однако;Я не администратор и не знаю всех деталей.

Любая помощь с этим будет оценена.

1 Ответ

0 голосов
/ 21 мая 2018

LD_LIBRARY_PATH для Linux.Предполагая, что у вас уже установлен Rtools в C: \ Rtools, вы можете использовать следующий код для установки ROracle

Sys.setenv(OCI_LIB64="C:\\oreclient_install_dir\\instantclient_12_1")
Sys.setenv(PATH=paste0(Sys.getenv("PATH"),";C:\\oreclient_install_dir\\instantclient_12_1"))
install.packages("ROracle", type="source", INSTALL_opts="--no-multiarch")

Для использования пакета ROracle вы можете использовать следующее:

Sys.setenv(OCI_LIB64="C:\\oreclient_install_dir\\instantclient_12_1")
Sys.setenv(PATH=paste0(Sys.getenv("PATH"),";C:\\oreclient_install_dir\\instantclient_12_1"))
library(ROracle)
...