首页 > 解决方案 > 在python中将值插入到db2表中的代码

问题描述

我想使用 Python 代码将变量值插入到 db2 表中

  id = input("table id:   ")
  tabname = input("Enter Table name:   ")
  descr = input("Enter description :   ")
  inser_sql = "INSERT INTO schema.table VALUES (?, ?, ?)",(id, tabname, descr)
        stmt = ibm_db.prepare(conn, inser_sql)
        ibm_db.execute(stmt)

这段代码给了我错误:

stmt = ibm_db.prepare(conn, inser_sql)   

例外:语句必须是字符串或 unicode

标签: pythondb2

解决方案


假设您的表定义如下:

"create table myschema.mytable(id int, tabname varchar(10), description varchar(10))"

我了解您的意图是使用准备好的语句和参数标记将特定行插入其中。跳过输入部分:

In [14]: id = 1
In [15]: tabname = 'TAB'
In [16]: descr = 'my desc'

你只需要先准备语句,稍后绑定参数,然后执行:

insert_sql = "INSERT INTO  myschema.mytable VALUES (?, ?, ?)"
prep_stmt = ibm_db.prepare(conn, insert_sql)
ibm_db.bind_param(prep_stmt, 1, id)
ibm_db.bind_param(prep_stmt, 2, tabname)
ibm_db.bind_param(prep_stmt, 3, descr)
ibm_db.execute(prep_stmt)

推荐阅读