.oci.Driver中的ROracle错误

时间:2018-05-18 14:59:50

标签: r oracle roracle

我试图使用ROracle。我的Oracle数据库版本是Oracle Database 12c版本12.1.0.1.0 - 64位生产,我已经为12.1.0.2.0版本安装了Instant Client和SDK(12.1.0.1.0不能在Oracle和#39上使用) ;网站)。

我可以通过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 包括添加环境变量。

经过一些搜索(例如here),看起来我需要设置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而且不了解所有细节。

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

1 个答案:

答案 0 :(得分: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)