我想写一个函数,它以字符串的形式接收参数,这个参数应该在DB2数据库的SQL语句中使用。然后我需要一行接一行,在每个循环步骤中执行smth:
import ibm_db
conn_str = 'database=xxx;hostname=x.x.x.x;port=xxxx;protocol=TCPIP;UID=xxxxx;pwd=secret;'
ibm_db_conn = ibm_db.connect(conn_str,'','')
def question_to_db(tel : string):
sql = "SELECT * from mper where mper.tel = ?"
sql2 = ibm_db.prepare(ibm_db_conn, sql)
ibm_db.bind_param(sql2, 1, tel, ibm_db.SQL_PARAM_INPUT, ibm_db.SQLCHAR)
stmt = ibm_db.exec_immediate(ibm_db_conn, sql2)
row = ibm_db.fetch_both(stmt)
while row != False
do_smth_with_row ....
row = ibm_db.fetch_both(stmt)
return(True)
运行程序后,我收到错误:
stmt = ibm_db.exec_immediate(ibm_db_conn, sql2)
Exception: statement must be a string or unicode
我正在寻找我的问题的任何解决方案。我找不到任何带有字符串和取数行的示例:(
有谁能帮我吗?先谢谢了。
1条答案
按热度按时间pbpqsu0x1#
Db2 Python API文档中有一个例子。问题是您混合了不同的函数。
应该可以这样做: