我试图使用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而且不了解所有细节。
对此有任何帮助将不胜感激。
答案 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)