在python中执行准备好的语句IBM_DB时发生绑定错误

时间:2018-06-25 13:41:07

标签: python db2 ibm-cloud command-line-interface

我正在尝试对IBM Cloud上的db2执行一条准备好的语句。我只想在已控制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 :(得分:0)

我的猜测是这是复制和粘贴错误。您在数组中有data,但是使用event来获取数组部分。将其更改为data['ID']等。