You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 17:57:29