1

エラーが発生します:

ファイル「pymssql.pyx」、443 行目、pymssql.Cursor.executemany (pymssql.c:6616) ファイル「pymssql.pyx」、417 行目、pymssql.Cursor.execute (pymssql.c:6057) ファイル「_mssql. pyx」、943 行目、_mssql.MSSQLConnection.execute_query (_mssql.c:9858) ファイル「_mssql.pyx」、974 行目、_mssql.MSSQLConnection.execute_query (_mssql.c:9734) ファイル「_mssql.pyx」、行1091、_mssql.MSSQLConnection.format_and_run_query (_mssql.c:10814) ファイル "_mssql.pyx"、1113 行目、_mssql.MSSQLConnection.format_sql_command (_mssql.c:11042) ファイル "_mssql.pyx"、1797 行目、_mssql ._substitute_params (_mssql.c:18646) ValueError: 使用可能なパラメーターよりも多くのプレースホルダーが SQL に含まれています

mssql テーブルへの一括挿入の実行中 (executemany)。1 つの実行ステートメントと mssql 管理スタジオに同じデータを挿入すると、問題なく動作します。

辞書とタプルを使用して executemany (data) を試しましたが、結果は同じでした。

コード:

cursor.executemany("insert table Values (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)", (data))

何か案は?

4

1 に答える 1

1

のすべてのサブリスト/サブタプルのdata長さは 21 (SQL クエリ内の %s の数) である必要があります。

しかし。長さが11、12、13、15、16、17、18、19 data、および 20 のアイテムもあります。エラーが発生します。more placeholders (meaning: %s) in sql than params (meaning: sublists in data) available

修正するには: どのように生成dataしているかを確認し、容赦なくすべてのdataアイテムを 21 個生成します。

于 2014-07-28T14:46:10.497 に答える