当我们试图使用ODBC从R查询DB2数据库中的任何表时,我们遇到了一个非常奇怪的问题。2两个不同的数据库(Microsoft SQL)工作起来就像一个魔咒。3这个错误只发生在我们团队中的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 Driver 13.00.01.00
Work station system:
R version 4.2.0 Patched (2022-05-12 r82348 ucrt) -- "Vigorous
Calisthenics"
Platform: x86_64-w64-mingw32/x64 (64-bit)
这里没有分开我们的连接信息。我们有相同版本的R和相同的操作系统(windows 10)。所有的软件包都是最新的。
我们的IT和我们自己都在挠头。目前我们只有三个选择
1.系统复位
1.清理电脑并重新安装所有设备
1.新计算机
我们已经尝试重新安装驱动程序,但没有效果。有人知道是什么问题吗?
最新消息:
恢复到旧版本的R(2021年8月)使问题消失。
1条答案
按热度按时间5m1hhzi41#
我可以通过ACS Windows应用程序包英语(64位)下载重新安装iSeries Access ODBC驱动程序来解决此问题。https://www.ibm.com/support/pages/odbc-driver-ibm-i-access-client-solutions