drv <- dbDriver ("Oracle") отлично работает в командной строке R, но не работает на RStudio Server - PullRequest
0 голосов
/ 14 марта 2019

, как следует из названия, я пытаюсь настроить соединения с БД Oracle через R, используя библиотеку ROracle на Unix-машине.при использовании R в командной строке у меня 0 проблем, но при попытке выполнить ту же самую точную инструкцию в RStudio Server я застрял со следующей ошибкой.

drv <- dbDriver ("Oracle") Ошибка в.oci.Driver (.oci.drv (), interruptible = interruptible, unicode_as_utf8 = unicode_as_utf8,: ошибка при попытке получить текст для ошибки ORA-01804 </p>

это выходные данные libPaths (): вRStudio Server

.libPaths()
[1] "/home/rs_violac/R/x86_64-redhat-linux-gnu-library/3.5"
[2] "/usr/lib64/R/library"                                 
[3] "/usr/share/R/library"

в R (командная строка)

> .libPaths()
[1] "/usr/lib64/R/library" "/usr/share/R/library"

Я установил следующий путь: enter image description here

и установилLD к файлу oracle.conf общего ресурса, как предложено в другом ответе на stackoverflow

echo "/oracle/app/oracle/product/12.2.0/client/lib" | sudo tee /etc/ld.so.conf.d/oracle.conf

Любая идея или предложение, как решить?

РЕДАКТИРОВАТЬ: я пытался установить переменную enviornments в RStudioконсоль, но без разрешения

Sys.setenv("OCI_INC"="/oracle/app/oracle/product/12.2.0/client")
Sys.setenv("OCI_LIB"="/oracle/app/oracle/product/12.2.0/client/lib")
Sys.setenv("OCI_LIB64"="/oracle/app/oracle/product/12.2.0/client/lib")
Sys.setenv("TNS_ADMIN"="/oracle/app/oracle/product/12.2.0/client/network/admin")
Sys.setenv("LD_LIBRARY_PATH"="/usr/lib64/R/lib::/lib:/usr/lib/jvm/jre/lib/amd64/server:/usr/lib/jvm/jre/lib/amd64:/usr/lib/jvm/java/lib/amd64:/usr/java/packages/lib/amd64:/lib:/usr/lib:/oracle/app/oracle/product/12.2.0/client/lib")
Sys.setenv("ORACLE_HOME"="/oracle/app/oracle/product/12.2.0/client")
Sys.setenv("NLS_LANG"="en_US.UTF-8")
Sys.setenv("ORACLE_BASE"="/oracle/app/oracle")
Sys.setenv("LC_ALL"="en_US.UTF-8")

Теперь ошибка:

Ошибка в .oci.Driver (.oci.drv (), interruptible = interruptible, unicode_as_utf8 = unicode_as_utf8,:ORA-12715: указан неверный набор символов

изменение ошибки инициируется установкой ORACLE_HOME env

1 Ответ

1 голос
/ 31 мая 2019

Пользователь rstudio должен установить ORACLE_HOME и ORACLE_HOSTNAME в своей среде на сервере, на котором работает rstudio-сервер.Вы можете использовать файл конфигурации .Renviron, например, используя оболочку BASH:

ORACLE_HOME=<your Oracle home>
ORACLE_HOSTNAME=<your host name>
export ORACLE_HOME ORACLE_HOSTNAME
...