无需管理员即可将R连接到Oracle数据库



我需要一个R脚本,它允许我连接到Oracle数据库,而不必安装任何需要管理功能的东西,最好除了下载包之外什么都不安装。在python中,我相信以下代码是有效的,因为它使用cx_Oracle模块作为便携式驱动程序。什么是一个好的R替代方案?

import pandas as pd
import sqlalchemy
import sys
host = "xxx.intra"
database = "mydb"
user = "usr"
password = "pw"
def get_oracle_engine(host, database, user, password):
return sqlalchemy.create_engine("oracle+cx_oracle://{user}:{password}@{host}:1521/?service_name={database}".format(host=host, database=database, user=user, password=password))
engine=get_oracle_engine(host, database, user, password)    
pd.read_sql_table("mytable", engine, schema= mydb,index.cols="id1")

我设法使用CRAN指令安装了ROracle,但在使用时,我一直得到ORA-12154 TNS: cound not resolve the connect identifier specified

library(ROracle)
con= DBI::dbconnect(dbDriver("Oracle"), user= user, password=password, host=host, dbname=database, port="1521")

顺便说一下,dbDriver("Oracle")返回

Driver name : Oracle (OCI) 
Driver version: 1.3-1
Client version: 12.1.0.2.0
  • 尝试以下代码:

    library(DBI)
    library(ROracle)
    drv <- Oracle()
    con <- dbConnect(drv, 'cj', 'welcome', 'localhost:1521/orclpdb1')
    dbGetQuery(con,"select count(*) from dual")
    

    连接字符串组件与您在SQLAlchemy中使用的{host}:1521/?service_name值有关。使用TNS别名或Easy Connect字符串,与其他基于C的Oracle驱动程序相同,例如。https://cx-oracle.readthedocs.io/en/latest/user_guide/connection_handling.html#connection-字符串

  • 当前ROCracle代码位于https://www.oracle.com/database/technologies/roracle-downloads.html上传到CRAN时出现了一些打包故障,CRAN维护人员没有对解决这些问题做出回应。

  • ROracle仍然需要Oracle客户端库,例如来自Oracle Instant Client的库。

相关内容

  • 没有找到相关文章

最新更新