簡體   English   中英

使用 PYODBC 將一定數量的參數傳遞給存儲過程時出錯

[英]error when passing with certain number of parameters to stored procedure using PYODBC

希望有人可以幫助我解決以下問題:我正在使用以下代碼從 Python - 3.8.3 調用一個存儲過程

def set_param_days(self, cursor, valueWW):
    # valueWW = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', 
                '17', '18', '19', '20', '21', '22', '23', '24', '25']
    query = 'exec [dbo].[SetOUTPUT] @dInervals=%s' % (valueWW,)
    cursor.execute(query)

但是,在執行此代碼時,我收到以下錯誤:

cursor.execute(query)
pyodbc.ProgrammingError: ('42000', "[42000] [Microsoft][ODBC SQL Server Driver][SQL Server]The identifier that starts with ''1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23',' is too long. Maximum length is 128. (103) (SQLExecDirectW)")

最初,我認為錯誤與 SQL 服務器中的存儲過程有關,但經過進一步測試,我將存儲過程名稱完全更改為不存在的名稱並收到相同的確切錯誤,這意味着該錯誤與 PYODBC 或python 代碼 - 呼叫從未到達 SQL 服務器 -

重要提示:如果參數的數量不超過 23,代碼將毫無問題地執行!

query = 'exec [dbo].[SetOUTPUT] @dInervals=\'%s\'' % ",".join(valueWW)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM