【问题标题】:Connect to ORACLE via R, using the info in sql developer使用 sql developer 中的信息通过 R 连接到 ORACLE
【发布时间】:2018-07-20 07:24:13
【问题描述】:

我正在使用没有管理员权限的机器。我使用 sql developer 连接到内部数据库。我也想通过 R 连接。

没有管理员权限,我有什么办法可以做到这一点?有些解决方案需要我设置一个 systemDNS——我做不到。 其他需要我安装jvm.dll

我的环境:Windows7,sqldeveloper,连接方式是通过TNS文件。

【问题讨论】:

  • 使用ROracle 包?这将需要将 Oracle 即时客户端解压缩到本地文件夹中
  • 好吧。我试过但得到了Package which is only available in source form, and may need compilation of C/C++/Fortran: ‘ROracle’。对此的各种解决方案是例如安装“RTools”包 - 但这没有帮助。另一个解决方案是选择另一个 repo(我的默认是 rstudio 镜像)——但这也不起作用。
  • 你可以将 Rtools 安装到不需要管理员权限的文件夹中
  • 啊——我试图通过 install.packages 下载 rtools——但我从 Cran 手动下载了它。现在我可以编译 ROracle。但我需要一个 oracle 帐户来下载即时客户端。帐户确认电子邮件似乎被我的垃圾邮件过滤器捕获了。明天汇报我的进展。 :-)
  • 在本地解压缩了即时客户端。但安装失败并显示以下消息:“错误:找不到 Oracle 客户端。请设置 OCI_LIB64 以指定其位置。” - 我猜这是我赢了 7 的系统环境变量?我需要一个管理员帐户才能更改。对吗?

标签: r rodbc rjava rjdbc roracle


【解决方案1】:

通过 R 连接到 SQL Developer 比我遇到的其他数据库要困难得多。在您的机器上安装 jdbc6.jar 并且知道其安装位置的文件路径非常重要。安装 jar 文件不需要管理员权限。您可以从Oracle's website 安装jar 文件。

我使用RJDBC 包这样连接:

    library(RJDBC)

    jdbcDriver <- JDBC("oracle.jdbc.OracleDriver", classPath = "file path to where ojdbc6.jar is installed on your computer")

    jdbcConnection <- dbConnect(jdbcDriver, "jdbc:oracle:thin:@YOUR_SERVER","YOUR_USERNAME","YOUR_PASSWORD")

然后您可以使用许多命令测试连接;我通常使用:

    dbListTables(jdbcConnection)

我的另一个最爱是在处理数据库时使用dbplyr 来实现类似 dplyr 的功能:

    library(dbplyr)

    tbl(jdbcConnection, "SAMPLE_TABLE_NAME")

结果输出将是来自被查询表的 tibble 形式的数据。

【讨论】:

    【解决方案2】:

    您可以在 R 会话中设置环境变量。

    Sys.setenv(OCI_LIB64="/Path/to/instantclient",OCI_INC="/Path/to/instantclient/sdk/include")
    

    您可以将它放在主目录中的文件.Rprofile 中,RStudio 将在您每次开始新会话时运行它。一旦你在.Rprofile 中有这个,你应该可以安装ROracle

    【讨论】:

      猜你喜欢
      • 2013-07-27
      • 2013-02-07
      • 1970-01-01
      • 2014-05-18
      • 2014-02-03
      • 1970-01-01
      • 2019-04-08
      • 1970-01-01
      • 2023-01-10
      相关资源
      最近更新 更多