我正在尝试使用ROracle。我的 Oracle 数据库版本是 Oracle Database 12c Release 12.1.0.1.0 - 64 位生产版,并且我已经为 12.1.0.2.0 版本安装了即时客户端和 SDK(12.1.0.1.0 在 Oracle 网站上不可用(。
我可以通过Oracle SQL Developer访问Oracle数据库,没有任何问题。我在 RStudio 中收到的错误消息是:
Error in .oci.Driver(.oci.drv(), interruptible = interruptible, unicode_as_utf8 = unicode_as_utf8, :
如果它有用,我在这里安装了即时客户端和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,不知道所有的细节。
任何这方面的帮助将不胜感激。
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)