尝试加载 "Oracle" dbDriver 时出现 ORA-01804 错误
ORA-01804 error while trying to load "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 服务器上工作。
我怎样才能避免这个错误?
你必须检查这两点:
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 oracle 客户端在其 $ORACLE_HOME 目录中丢失了一些与时区相关的文件。解决方案是简单地从另一个 oracle 客户端实例复制这些文件。
这是一条来自 Oracle 数据库的一般性错误消息,指示未正确读取时区信息文件。以下是最常见的解决方案:
1) 您的 oracle 客户端可能在其 $ORACLE_HOME 目录中丢失了一些与时区相关的文件。您可以尝试简单地从另一个 oracle 客户端实例复制这些文件。
2) Binary 可能没有访问 OCCI 库的权限。请确保权限正确到位。
3) 检查以确保在您的环境中正确设置了以下路径:
LD_LIBRARY_PATH
ORACLE_HOME
NLS_LANG
我正在使用 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 服务器上工作。
我怎样才能避免这个错误?
你必须检查这两点:
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 oracle 客户端在其 $ORACLE_HOME 目录中丢失了一些与时区相关的文件。解决方案是简单地从另一个 oracle 客户端实例复制这些文件。
这是一条来自 Oracle 数据库的一般性错误消息,指示未正确读取时区信息文件。以下是最常见的解决方案:
1) 您的 oracle 客户端可能在其 $ORACLE_HOME 目录中丢失了一些与时区相关的文件。您可以尝试简单地从另一个 oracle 客户端实例复制这些文件。
2) Binary 可能没有访问 OCCI 库的权限。请确保权限正确到位。
3) 检查以确保在您的环境中正确设置了以下路径: LD_LIBRARY_PATH ORACLE_HOME NLS_LANG