Ошибка 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

Другие вопросы по тегам