首页 > 解决方案 > 使用 ibm_db 连接数据库时出现 SQL 错误

问题描述

我的问题:当我尝试使用 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

谢谢你的帮助!

2020 年 7 月 30 日编辑:@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 EDUID: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 EDUID:7616 功能:DB2 UDB,通用通信,sqlcctcplogIPAddress,探针:50 MESSAGE : SQL10007N 无法检索到消息“3220”。原因代码:“3”。

问题 4:目标 Db2-server 平台和版本是什么?

答案 4:

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

答案 5:是的。

问题 6: 您是否能够通过 db2cli validate -dsn XXX -connect -user xxx - passwd zzzzzz 方法使用 db2cli 工具创建 DSN 并测试连接性?

答案 6:尝试这样做时,我收到以下错误:

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

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

[IBM][CLI Driver] CLI0124E 参数值无效。SQLSTATE=HY009

标签: pythondb2

解决方案


推荐阅读