r语言 - 尝试加载 "Oracle" dbDriver 时出现 ORA-01804 错误



我正在使用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 服务器上使用 RHEL 5 服务器。

如何避免此错误?

你必须检查这 2 点:

  • 必须定义ORACLE_HOME环境变量
  • $ORACLE_HOME/lib路径必须位于环境变量值LD_LIBRARY_PATH

例如,如果ORACLE_HOME /usr/lib/oracle/12.1/client64(这是使用官方.rpm的 Oracle 即时客户端安装中的默认设置),请执行以下 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 oracle 客户端在其 $ORACLE_HOME 目录中缺少一些与时区相关的文件。解决方案是简单地从另一个 oracle 客户端实例复制这些文件。

这是来自 Oracle 数据库的一条一般错误消息,指示未正确读取时区信息文件。以下是最常见的解决方案:

1)您的oracle客户端可能在其$ ORACLE_HOMEdirectory中缺少一些与时区相关的文件。您可以尝试简单地从另一个 oracle 客户端实例复制这些文件。

2) 二进制可能没有访问 OCCI 库的权限。请确保权限正确到位。

3) 检查以确保在您的环境中正确设置了以下路径:LD_LIBRARY_PATHORACLE_HOMENLS_LANG

相关内容

  • 没有找到相关文章

最新更新