【问题标题】:Connecting to an Oracle Database in R to run SQL Query在 R 中连接到 Oracle 数据库以运行 SQL 查询
【发布时间】:2018-10-11 01:10:11
【问题描述】:

我正在尝试连接到 R 中的 Oracle 数据库。在 Python 中,我只需使用 cx_Oracle 包,并且可以使用以下代码轻松连接和运行查询:

my_dsn = cx_Oracle.makedsn("host",port,sid="sid")
connection = cx_Oracle.connect(user="user", password="password", dsn=my_dsn)
cursor = connection.cursor()

querystring = "SQL query"
cursor.execute(querystring)

R 中是否有等效的包可供使用?如果是这样,它是什么,以及如何设置我的方位以连接到 Oracle 数据库并运行查询——将结果保存到 data.frame 中?我需要能够构建一个 DSN,就像我在上面的代码中所做的那样。谢谢!

【问题讨论】:

  • 这个问题不幸的是专门off-topic,所以很可能被关闭。快速搜索在CRANOracle's website 上都找到了ROracle 的条目。您还可以考虑使用 ODBC 变体之一,RODBCodbc
  • 感谢您提供的软件包名称!不幸的是,我在文档中没有看到如何创建 DSN。看起来这两个软件包都希望您已经知道 DSN 是什么。有没有办法像我在问题中发布的代码那样创建 DSN?
  • DSN 创建将完全独立于 R 包本身。然而,其中一些软件包在其文档中描述了如何设置 dsn。

标签: r database oracle package


【解决方案1】:

Python cx_Oracle 的 ROracle 等价物:

my_dsn = cx_Oracle.makedsn("host",port,sid="sid")
connection = cx_Oracle.connect(user="user", password="password", dsn=my_dsn)

是:

connect.string <- paste(
  "(DESCRIPTION=",
  "(ADDRESS=(PROTOCOL=tcp)(HOST=", host, ")(PORT=", port, "))",
  "(CONNECT_DATA=(SID=", sid, ")))", sep = "")
con <- dbConnect(drv, username = "user", password = "password", 
                 dbname = connect.string)

您可以使用任何 Oracle 的标准(非 JDBC)连接字符串。一个参考是https://oracle.github.io/node-oracledb/doc/api.html#connectionstrings

【讨论】:

  • 虽然他在问是否可以像 Python 的 querystring 这样执行查询。您确认这在ROracle 中是不可能吗?谢谢
猜你喜欢
  • 1970-01-01
  • 2020-06-09
  • 1970-01-01
  • 1970-01-01
  • 2017-05-02
  • 1970-01-01
  • 1970-01-01
  • 2013-03-26
  • 1970-01-01
相关资源
最近更新 更多