【发布时间】:2017-12-10 09:22:24
【问题描述】:
我无法通过 ODBC 连接到 DB2 数据库。我在 Windows 系统上,并在 ODBC 管理器中配置了数据源名称。当我在那里测试连接时,我得到Connection tested successfully.。我还可以使用 CLI 和 ODBC 在 IBM 的 DB2 Configuration Assistant 中成功测试连接。
我无法在 R 中连接。我尝试了 RODBC 和 odbc 包,结果是一样的。我的意图是执行一个简单的查询来验证连接。当我运行以下 R 脚本时,出现错误。这是我的伪代码。
library('RODBC')
myQuery <- 'SELECT COLUMN1, COLUMN2 FROM DATABASE.TABLE FETCH FIRST 10 ROWS ONLY;'
cnxn <- odbcConnect('myDSN')
data <- sqlQuery(channel=cnxn, query=myQuery)
odbcCloseAll()
这是我得到的错误。
Error in sqlQuery(channel = cnxn, query = myQuery) :
first argument is not an open RODBC channel
In addition: Warning messages:
1: In RODBC::odbcDriverConnect("DSN=myDSN") :
[RODBC] ERROR: state 58031, code -1031, message [IBM][CLI Driver] SQL1031N The database directory cannot be found on the indicated file system. SQLSTATE=58031
2: In RODBC::odbcDriverConnect("DSN=myDSN") : ODBC connection failed
我通过实验了解到,我的脚本永远无法发送查询。此错误在 odbcConnect 命令中生成。
我无法访问服务器本身,只能访问数据库。有没有什么我可以做或尝试自己解决这个问题,而无需通过支持?
编辑:
我现在有cataloged my database,并且在 3 个地方测试连接成功,ODBC 数据源管理员、Db2 命令行和 Db2 配置助手。我知道权限没有问题,因为我可以通过 IBM Query Management Facility 执行查询。我认为这是我的驱动程序或系统的 PATH 语句的问题,但我不确定如何追踪。
【问题讨论】:
-
似乎没有为 DB2 驱动程序设置应用程序环境。尝试从 DB2 命令窗口运行 R。
-
我不确定如何在 DB2 命令窗口中运行 R,但您的评论很有帮助。我现在正朝着设置应用环境的方向前进。