Вызов Python для «ibm_db.exec_imediate» выдает сообщение «Функция (% s) возвращает слишком мало значений» - PullRequest
0 голосов
/ 24 января 2019

Я вызываю хранимую процедуру с 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) возвращает слишком мало значений.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 .: У меня нет доступа к коду процедуры.

Спасибо.

1 Ответ

0 голосов
/ 24 января 2019

ibm_db использует протокол DRDA , и это не лучший выбор для базы данных Informix.Вы можете попробовать то же самое с родным драйвером Python Informix, который IfxPy .

Вот домашняя страница драйвера Python Informix
https://openinformix.github.io/IfxPy/

...