gpt4 book ai didi

r - 无法在 Linux 上使用 ROracle 连接到 Oracle 数据表(错误 ORA-01804,能够使用 Sql*Plus)

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:22:05 25 4
gpt4 key购买 nike

我正在尝试使用 ROracle 连接到 Oracle。我能够从终端(在 Linux 上)使用 Sql*Plus,但在 R 中使用以下代码:

 library(ROracle)
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 版本 3.2.5。

我与 Oracle 数据库的连接是本地的。我的环境变量永久设置在配置文件中,因此不必再次明确设置它们。但是,为了安全起见,我确实再次明确地设置了它们:

 Sys.setenv()

毫不奇怪,这没有帮助。

我真的不确定从哪里开始,所以任何指点都将不胜感激。提前致谢!

**编辑:我还知道 ORA-01804 错误与时区读取问题有关。所以,我尝试设置

 NLS_LANG=en_US.UTF8

启动SQL*Plus并执行后

 !echo $LANG

它给了我 NLS_LANG 参数。这现在给我 ORA-12715 错误:

 ORA-12715:invalid character set specified

这表明 NLS_LANG 参数不正确。我试过使用 UTF-8、en、US、American、America、English 等的各种不同组合,但似乎都不起作用!

最佳答案

我在 Mac 上找到了解决此 ORA-01804 错误的方法。如果从命令行启动 R,则必须从即时客户端目录中启动 R。所以首先做:

cd /path/to/instantclient_11_2

要在 RStudio 中避免此错误,请转到“工具”>“全局选项”并将默认工作目录更改为即时客户端目录:

enter image description here

请注意,在 R 中使用 setwd("/path/to/instantclient_11_2") 从命令行启动 R 时有效,但在 RStudio 中无效。

顺便说一句,我没有必要导出 ORACLE_HOME。

关于r - 无法在 Linux 上使用 ROracle 连接到 Oracle 数据表(错误 ORA-01804,能够使用 Sql*Plus),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41722304/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com