1

我正在尝试使用 ROracle。我的 Oracle 数据库版本是 Oracle Database 12c 版本 12.1.0.1.0 - 64 位生产,我已经安装了版本 12.1.0.2.0 的 Instant Client 和 SDK(Oracle 网站上没有 12.1.0.1.0)。

我可以通过 Oracle SQL Developer 访问 Oracle 数据库,没有任何问题。我在 RStudio 中收到的错误消息是:

Error in .oci.Driver(.oci.drv(), interruptible = interruptible, unicode_as_utf8 = unicode_as_utf8,  : 

如果有用,我在这里安装了 Instant Client 和 SDK:C:\oreclient_install_dir\instantclient_12_1

我正在运行 Windows 机器,并按照 CRAN 上的说明进行操作: http ://cran.us.r-project.org/web/packages/ROracle/INSTALL 包括添加环境变量。

经过一番搜索(例如这里),我似乎需要设置 LD_LIBRARY_PATH 和 ORACLE_HOME 和“OCI_LIB”,我做了:

Sys.setenv(LD_LIBRARY_PATH="C:/oreclient_install_dir/instantclient_12_1")
Sys.setenv("ORACLE_HOME" = "C:/oreclient_install_dir/instantclient_12_1")
Sys.setenv("OCI_LIB" = "C:/oreclient_install_dir/instantclient_12_1")

出现同样的错误。但是,我可能做的不对。我不是 DBA,也不知道所有细节。

对此的任何帮助将不胜感激。

4

1 回答 1

1

LD_LIBRARY_PATH适用于 Linux。假设你已经在 C:\Rtools 中安装了 Rtools,可以使用以下代码安装ROracle

Sys.setenv(OCI_LIB64="C:\\oreclient_install_dir\\instantclient_12_1")
Sys.setenv(PATH=paste0(Sys.getenv("PATH"),";C:\\oreclient_install_dir\\instantclient_12_1"))
install.packages("ROracle", type="source", INSTALL_opts="--no-multiarch")

要使用 ROracle 包,您可以使用以下内容:

Sys.setenv(OCI_LIB64="C:\\oreclient_install_dir\\instantclient_12_1")
Sys.setenv(PATH=paste0(Sys.getenv("PATH"),";C:\\oreclient_install_dir\\instantclient_12_1"))
library(ROracle)
于 2018-05-21T05:50:34.650 回答