本文介紹了在Python中調用存儲過程時出錯-使用MySQLdb的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
我有一個名為test的MySQL存儲過程,它接受一個參數。
我可以使用以下代碼從Python2.7x執行存儲過程
data='Teststr'
cur = db.cursor()
cur.execute("CALL test('{0}')".format(data))
但當我使用
data='Teststr'
cur = db.cursor()
cur.callproc('test',data)
我遇到了
OperationalError: (1318, 'Incorrect number of arguments for PROCEDURE MyDb.test; expected 1, got 7')
看起來,Python將每個字符視為一個參數。我在這里錯過了什么?
推薦答案
您希望cur.callproc('test', (data,))
傳遞一個包含1個元素的元組
例如:
>>> a = 'hello'
>>> len(a) # just a
5
>>> len( (a) ) # still just a
5
>>> len( (a,) ) # single element tuple containing a
1
這篇關于在Python中調用存儲過程時出錯-使用MySQLdb的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,