【发布时间】:2019-01-02 17:38:00
【问题描述】:
我有以下查询:
import jaydebeapi,pandas as pd
cursor = conn.cursor()
cursor.execute('''INSERT INTO MD SELECT DISTINCT MD FROM viewshareddim.TMD_VIP
WHERE STN_ID=? AND P_T in ? AND ID in ? AND C_ID = ?''', (MD[0],MD[1],MD[2],MD[3]))
值是:
MD = [01,(02,05,06),(02,04,05),8]
试图参考python list 此处提供的解决方案,但不知道如何为我的查询实施解决方案。如果可以提供任何指导,将不胜感激。
试过这个:
INSERT INTO MD SELECT DISTINCT MD FROM viewshareddim.TMD_VIP
WHERE STN_ID=(?) AND P_T in (?) AND ID in (?) AND C_ID = (?), (MD[0],MD[1],MD[2],MD[3])
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-
packages/jaydebeapi/__init__.py", line 499, in execute
self._set_stmt_parms(self._prep, parameters)
File
"/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/jaydebeapi/__init__.py", line 490, in _set_stmt_parms
prep_stmt.setObject(i + 1, parameters[i])
RuntimeError: No matching overloads found for setObject in find. at
native/common/jp_method.cpp:127
【问题讨论】:
-
尝试在
IN参数周围加上括号?AND P_T in (?) AND ID in (?) -
我尝试了您的建议,但出现错误。已在上面的主要问题中发布了结果。
-
您的哪些参数不起作用?此外,
C_ID = ?, (MD[0],MD[1],MD[2],MD[3])不是任何类型的有效 SQL。 -
您能否提供更多产生此错误的 Python 代码来帮助构建问题?