Ошибка привязки при выполнении подготовленного оператора IBM_DB в python - PullRequest
0 голосов
/ 25 июня 2018

Я пытаюсь выполнить подготовленный оператор для db2 в IBM Cloud.Я хочу выполнить запрос только в том случае, если заполнено поле data_array, которое я контролировал.Это мой код:

conn = ibm_db.connect(dsn, "", "")
ibm_db.autocommit(conn, ibm_db.SQL_AUTOCOMMIT_OFF)

ins_sql = "insert into MY_TABLE (ID, NAME) values (?, ?)"
ins_stm = ibm_db.prepare(conn, ins_sql)

if data_array:
    for data in data_array:
        ibm_db.bind_param(ins_stm, 1, data['ID'])
        ibm_db.bind_param(ins_stm, 2, data['NAME'])
        ibm_db.execute(ins_stm)

    ibm_db.commit(conn)

Когда я запускаю его, я получаю следующую ошибку в строке ibm_db.execute(ins_stm).

Исключение: Ошибка привязки 3: [IBM] [Драйвер CLI] CLI0102E Неверное преобразование.SQLSTATE = 07006 SQLCODE = -99999

Что я здесь не так делаю?

1 Ответ

0 голосов
/ 25 июня 2018

Я предполагаю, что это ошибка копирования и вставки. У вас есть data в массиве, но используйте event, чтобы получить часть массива. Измените это на data['ID'] и т. Д.

...