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

R通过ODBC连接DB2数据库查询报HY000错误问题排查

R通过ODBC查询DB2数据库单设备异常问题

问题表现

使用R语言通过ODBC驱动查询DB2数据库任意表时触发异常,具体特征如下:

  • 同环境下连接两套不同的Microsoft SQL数据库可正常运行
  • 故障仅在团队4名成员的1台设备上复现
  • 更换任意DB2账号登录均无法解决问题
  • 其余同事设备运行相同代码可正常返回结果

问题复现代码

library(DBI)
library(odbc)

con <- dbConnect(odbc::odbc(), dsn = "ourDSN", uid = "kUsername", pwd = "kPwd")
dbGetQuery(con,"Select * FROM OURSCHEMA.TABLE1")

故障设备返回报错信息

error: nanodbc/nanodbc.cpp:1655: HY000: [IBM][System i Access ODBC-driver][DB2 for i5/OS]
Error message no available. The error message cannot be converted 

注:报错信息最后一行由非英文内容翻译而来。

故障设备环境信息

Formal class 'DB2/400 SQL' [package ".GlobalEnv"] with 4 slots
..@ ptr :<externalptr>
..@ quote : chr "\""
..@ info :List of 15 
.. ..$ dbname : chr "OurDBName"
.. ..$ dbms.name : chr "DB2/400 SQL"
.. ..$ db.version : chr "07.04.0015"
.. ..$ username : chr "USER"
.. ..$ host : chr ""
.. ..$ port : chr ""
.. ..$ sourcename : chr "OurSourceName"
.. ..$ servername : chr "OurServerName"
.. ..$ drivername : chr "CWBODBC.DLL"
.. ..$ odbc.version : chr "03.80.0000"
.. ..$ driver.version : chr "07.01.0000"
.. ..$ odbcdriver.version : chr "03.51"
.. ..$ supports.transactions : logi TRUE
.. ..$ getdata.extensions.any_column: logi TRUE
.. ..$ getdata.extensions.any_order : logi TRUE
.. ..- attr(*, "class")= chr [1:3] "DB2/400 SQL" "driver_info" "list"
..@ encoding: chr ""

服务端OS: IBM i 7.4
ODBC驱动版本: 13.00.01.00 

工作站环境:
R version 4.2.0 Patched (2022-05-12 r82348 ucrt) -- "Vigorous Calisthenics"
Platform: x86_64-w64-mingw32/x64 (64-bit)  

前期排查过程

  • 对比故障设备与正常设备,二者ODBC连接配置无差异,运行相同版本Windows 10操作系统、相同版本R,所有R包均已更新至最新版本
  • 已尝试重装ODBC驱动,问题未得到解决
  • 排查阶段IT团队与开发人员均未定位到根因,初步备选解决方案为系统重置、全盘格式化重装系统、更换新设备

问题后续验证结果

经后续测试验证,将故障设备的R版本回退至2021年8月发布的旧版本后,故障完全消失。


内容的提问来源于stack exchange,提问作者ErrantBard

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 23:30:39