使用ibm_db连接到数据库时出现SQL错误

时间:2020-07-29 19:26:02

标签: python db2

我的问题:当我尝试使用python软件包ibm_db连接到DB2时,出现以下错误:

SQLCODE = -30073] [CLI驱动程序] SQL30073N“ 0x0000”不支持参数值“ 0x0000”。 SQLSTATE = 58017

代码如下。

import ibm_db
conn_str = "DRIVER=IBM DB2 ODBC DRIVER;DATABASE=XXXXXX_XX_X;HOSTNAME=XXXXXXX.XX.XXX.XXX;PORT=XXXX;PROTOCOL=TCPIP;UID=XXXX;PWD=XXXX;"
connection = ibm_db.connect(conn_str, "", "")

上面的X代表字母数字字符。我为什么会收到此错误?

以下是我搜索过但无法找到任何内容的位置:

https://github.com/ibmdb/node-ibm_db/issues/450 https://www.ibm.com/support/knowledgecenter/en/SSEPEK_11.0.0/codes/src/tpc/n30073.html https://www.sqlerror.de/db2_sql_error_-30073_sqlstate_58017.html

感谢您的帮助!

编辑7/30/2020:@mao,感谢您的反馈。这是其他事实:

问题1:您运行Python的操作系统是什么?您的python版本?

答案1::64位2016 Windows Server 2016 Standard。 (使用Python 3.7.4)

问题2: ibm_db模块的版本?

答案2: ibm_db-3.0.2-py3.7

问题3: clidriver db2level命令的文本输出是什么?

答案3:在此处查看日志:C:\ ProgramData \ IBM \ DB2 \ C_PROGRA〜1_IBM_NTX64_〜1_CLIDRI〜1 \ db2diag.log

2020-07-29-15.19.38.831000-240 I26899F365级别:警告 PID:5276 TID:7616 PROC:python.exe 实例:节点:000 主机名:XXX 爱迪德:7616 功能:DB2 UDB,bsu安全性,sqlexLogPluginMessage,探测:20 数据#1:大小为43个字节的字符串 loadAuthidMapper:GetModuleHandle rc = 126

2020-07-29-15.19.38.965000-240 I27266F371级别:警告 PID:5276 TID:7616 PROC:python.exe 实例:节点:000 主机名:XXX 爱迪德:7616 功能:DB2 UDB,通用通信,sqlcctcplogIPAddress,探测器:50 消息:SQL10007N无法检索到消息“ 3220”。原因码:“ 3”。

问题4:什么是目标Db2服务器平台和版本?

答案4:

问题5:是Db2-for-Z / OS吗?

答案5:是。

问题6:您是否可以通过db2cli validate -dsn XXX -connect -user xxx-passwd zzzzzz方法创建DSN并测试与db2cli工具的连接?

答案6:尝试这样做时,出现以下错误:

尝试连接数据源名称“ XXXXX”:

[FAILED]:[IBM] [CLI驱动程序] SQL1531N连接失败,因为在db2dsdriver.cfg配置文件或db2cli.ini配置文件中找不到用DSN连接字符串关键字指定的名称。连接字符串中指定的数据源名称:“ XXXXX”。

[IBM] [CLI驱动程序] CLI0124E无效的参数值。 SQLSTATE = HY009

0 个答案:

没有答案