Python 调用 'ibm_db.exec_imediate' 给出消息 'Function (%s) returns too few values'

Python call to 'ibm_db.exec_imediate' gives message 'Function (%s) returns too few values'

我正在使用 ibm_db 调用存储过程,如下所示:

SQL = "EXECUTE PROCEDURE db_x:example_procedure(8, 1234567)"
stmt = ibm_db.exec_immediate(conn, sql)

但是第 exec_imediate 行给出了错误:交易无法完成:[IBM][CLI 驱动程序][IDS/UNIX64] 函数 (% s) returns 值太少。 SQLCODE=-685

在 IBM 站点中,我们有以下内容:

685 Function <function-name> returns too few values.
The number of returned values from a function is less than the number
of values that the caller expects.

我不知道错误发生在哪里,为什么?我该如何调试并解决它?

Ps.: 我无权访问程序代码。

谢谢。

ibm_db使用DRDA协议,它不是Informix数据库的最佳选择。您可以尝试使用 Informix 本机 python 驱动程序,即 IfxPy.

这里是 Informix 原生 python 驱动主页
https://openinformix.github.io/IfxPy/