在R中从RJDBC迁移至ODBC遇Oracle数据库连接问题求助
问题:从RJDBC转ODBC连接Oracle数据库失败
核心诉求:按其他用户反馈,应当可以通过ODBC替代RJDBC连接目标数据库,但多次尝试均失败。
背景信息
目前我们使用RJDBC连接异地Oracle数据库,代码如下:
library(RJDBC) classpath_name="A:/ojdbc8.jar" # 创建连接驱动并打开连接 jdbcDriver <- JDBC(driverClass="oracle.jdbc.driver.OracleDriver", classPath=classpath_name) jdbcConnection <- dbConnect(jdbcDriver, "jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=website.com)(PORT=2879))(CONNECT_DATA=(SERVICE_NAME=pdblhs)))", "username", "password") rv_protocol_staff<- dbGetQuery(jdbcConnection, "select * From schema.rv_protocol_staff order by protocol_id, created_date")
由于RJDBC无法适配RStudio连接面板,因此希望改用ODBC方式连接。
同团队连接同一数据库的同事可正常使用ODBC,但他是通过Windows「ODBC数据源」工具配置了钱包等内容,而我没有电脑管理员权限,无法进行该配置操作。
失败的连接尝试
- 使用
DBI::dbConnect连接,返回错误(错误提示:Oracle ODBC Driver无法解析指定的连接标识符):
vdw = DBI::dbConnect(odbc::odbc(), Driver= "Oracle in OraClient12Home1", DBQ = "website.com:2879/pdblhs", Schema = "my_schema", UID="myUsername", PWD="MyPassword")
- 使用
odbcDriverConnect连接,返回错误:TNS:Connect timeout occurred
Conex <- odbcDriverConnect("DRIVER=Oracle in OraClient12Home1;UID=myUsername;PWD=myPassword;DBQ=//website.com:2879/pdblhs;", believeNRows = FALSE)
通过odbclistdrivers()已确认本地安装了Oracle in OraClient12Home1驱动。
参考成功案例
我可通过VS Code的「Oracle Explorer」使用连接串tcps://website.com:2879/pdblhs(搭配用户名密码)成功连接数据库,希望了解如何将该连接方式转换为R的ODBC连接代码。
内容的提问来源于stack exchange,提问作者Joe Crozier
相关产品推荐
相关产品推荐

