Ошибка ORA-01804 при попытке загрузить "Oracle" dbDriver
Я использую ROracle и делаю следующие команды в R:
Sys.getenv()
drv <- dbDriver("Oracle")
И вот ошибка, которую я получаю после этой последней строки:
Error in .oci.Driver(.oci.drv(), interruptible = interruptible, unicode_as_utf8 = unicode_as_utf8, :
Error while trying to retrieve text for error ORA-01804
Я на RStudio Server работаю на сервере RHEL 5.
Как я мог избежать этой ошибки?
2 ответа
Вы должны проверить эти 2 пункта:
ORACLE_HOME
переменная окружения должна быть определена$ORACLE_HOME/lib
путь должен быть вLD_LIBRARY_PATH
значение переменной среды
Например, если ваш ORACLE_HOME
является /usr/lib/oracle/12.1/client64
(который используется по умолчанию при установке Oracle Instant Client с официальным .rpm
), выполните следующие R команды:
Sys.setenv("ORACLE_HOME" = "/usr/lib/oracle/12.1/client64")
Sys.getenv("LD_LIBRARY_PATH")
# Here check if /usr/lib/oracle/12.1/client64/lib is a part (separated by ":" of the result)
# else, append ":/usr/lib/oracle/12.1/client64/lib" to the result and set the environment variable using:
# Sys.setenv("LD_LIBRARY_PATH" = "/all/the/result:/of/getenv/command:/usr/lib/oracle/12.1/client64/lib")
ORA-01804: сбой при инициализации информации о часовом поясе Причина: файл информации о часовом поясе не был правильно прочитан.
Причина была в том, что у моего клиента Linux Linux-оракула отсутствовали некоторые файлы, связанные с часовым поясом, в каталоге $ORACLE_HOME. Решением было просто скопировать эти файлы из другого экземпляра клиента oracle.
Это общее сообщение об ошибке из базы данных Oracle, указывающее, что файл информации о часовом поясе не был прочитан должным образом. Ниже приведены наиболее распространенные решения:
1) Ваш клиент oracle может пропустить некоторые файлы, связанные с часовым поясом, в своем каталоге $ORACLE_HOME. Вы можете попробовать просто скопировать эти файлы из другого экземпляра клиента Oracle.
2) Двоичный файл может не иметь доступа к библиотеке OCCI. Пожалуйста, убедитесь, что разрешения на месте.
3) Убедитесь, что в вашей среде правильно заданы следующие пути: LD_LIBRARY_PATH ORACLE_HOME NLS_LANG