r - 连接:Oracle Autonomous DB 和 R - ROracle 包问题
问题描述
我正在尝试将计算实例上的 RStudio 连接到 Oracle 自治仓库。我已经介绍了以下步骤:
- 预置的自治数据仓库
( https://docs.oracle.com/en/cloud/paas/autonomous-data-warehouse-cloud/tutorial-provision-adw/ )- 存储DB连接钱包;
- 安装 Oracle Instant 客户端基本包:https ://www.oracle.com/technetwork/topics/winx64soft-089540.html
- 下载并放置在与即时客户端相同的目录下:SDK包和ODBC包
- 在环境可验证的 PATH ("C:/oracle_client/instantclient_18_5") 中包含即时包路径,并使用相同的路径创建 OCI_LIB64 系统变量
- 安装的 GTools 检查 PATH 选项
- 将钱包解压到:C:\oracle_client\instantclient_18_5\network\admin
现在我在 RStudio 中安装 ROracle 包时遇到了问题。我正在使用以下脚本:
Sys.setenv(OCI_LIB64="C:/oracle_client/instantclient_18_5")
install.packages("ROracle")
我得到的错误是未找到包含标头:
Warning in strptime(xx, f, tz = tz) :
unable to identify current timezone 'C':
please set environment variable 'TZ'
* installing *source* package 'ROracle' ...
** package 'ROracle' successfully unpacked and MD5 sums checked
** using staged installation
Oracle Client Shared Library 64-bit - 18.5.0.0.0 Operating in Instant Client mode.
found Instant Client C:/oracle_client/instantclient_18_5
found Instant Client SDK C:/oracle_client/instantclient_18_5/sdk/include
ERROR: cannot find Oracle Client include headers in C:/oracle_client/instantclient_18_5/sdk/include.
Please set OCI_INC to correct location.
ERROR: configuration failed for package 'ROracle'
* removing 'C:/Users/opc/Documents/R/win-library/3.6/ROracle'
Warning in install.packages :
installation of package ‘ROracle’ had non-zero exit status
每个人都说要像这样设置 OCI_INC(但我没有以“...client_1/oci/include/:
Sys.setenv(OCI_INC="C:/Oracle/product/11.2.0/client_1/oci/include")
知道 ROracle 或一般情况下我缺少什么吗?
R版本:3.6
操作系统:计算实例上的 Windows Server
解决方案
根据文档(https://docs.oracle.com/en/database/oracle/r-enterprise/1.5.1/oread/installing-oracle-database-instant-client.html#GUID-8C502BDD-C1A1-4EA0 -9E88-D2F8452D4AC2 ) 您需要下载“Instant Client Package - SDK”。当我检查即时客户端的网页时,SDK 版本的链接不存在。
但是,如果您访问此处:https ://www.oracle.com/database/technologies/instant-client/downloads.html并在以下页面上选择您的 O/S,则应该有 SDK 版本的链接。例如,我使用的是 Mac,正确的下载在这里:https ://download.oracle.com/otn_software/mac/instantclient/193000/instantclient-sdk-macos.x64-19.3.0.0.0dbru.zip
解压缩该文件后,目录结构中有一个 .../include 文件夹,其中包含我认为安装程序需要完成的 .h 文件。因此,我的 Mac 上的正确设置是:
OCI_LIB64 设置为 /Users/keithlaker/Downloads/instantclient_19_3 OCI_INC 设置为 /Users/keithlaker/Downloads/instantclient_19_3/sdk/include
需要注意的一件事...我不熟悉 R,但笼统地说,Oracle 的 R 数据库内实现(数据库内 R 脚本存储库和 R 对象数据存储)是现在免费的 EE“高级分析”选项的一部分不是自治数据库的一部分。
因此,您的 R 项目应该能够连接,但您将无法使用任何常用的数据库内 R 包,因为它们不存在。
希望这可以帮助。
刚刚在我们的内部论坛上发现了一个值得分享的帖子。以上可能允许您安装 R 客户端,但 ADB (ADW/ATP) 不支持使用 ore.connect() 和 ore.disconnect()。我们的产品地图上支持 R,请参阅 OpenWorld 2019 的此演示文稿 - https://static.rainfocus.com/oracle/oow19/sess/1553766982670001yXnT/PF/CON4719%20OOW%20SF%202019%20-%20Hornick%20 -%20OML%20Overview%20and%20Roadmap%20v1.4_1568740954169001k3Df.pdf
推荐阅读
- angular - 加载数据之前的角度渲染?
- wkwebview - WKWebView addEventListener 没有收到日历事件
- gtk - 可以将 Gtk 小部件导入 Gtk#
- jit - 在 FasterRCNN 模型上使用 torch.jit.script 时出错
- go - 接口转换:interface{} 为 nil,而不是 bool
- swift - Swift 5 - 通过泛型分配相等类型的属性值时出错
- arrays - mongodb update/upsert 和嵌套数组
- reactjs - 如何在反应中正确地迭代或循环对象
- python - 向数据帧中的字符串添加第二个撇号以捕获应该存在撇号的名称
- puppeteer - 如何等待 puppeteer 完成打印到打印机功能?