"Ungültiger parameter "Typ" (numpy.int64) beim einfügen von Zeilen mit executemany()

Ich versuche, einfügen Haufen Daten in die Datenbank

insert_list = [(1,1,1,1,1,1),(2,2,2,2,2,2),(3,3,3,3,3,3),....] #up to 10000 tuples in this list

conn = pyodbc.connect('DRIVER={FreeTDS};SERVER=xxxxx;DATABASE=xxxx;UID=xx;PWD=xx;TDS_Version=7.0')
cursor = conn.cursor()

sql = "insert into ScanEMAxEMAHistoryDay(SecurityNumber, EMA1, EMA2, CrossType, DayCross, IsLocalMinMax) values (?, ?, ?, ?, ?, ?)"

cursor.executemany(sql, insert_list)

cursor.executemany(sql, insert_list)

pyodbc.ProgrammingError: ('Invalid parameter type. param-index=4 param-type=numpy.int64', 'HY105')

reduzieren zu 100 Tupel:

cursor.executemany(sql, insert_list[:100])

cursor.executemany(sql, insert_list[:100])

pyodbc.ProgrammingError: ('Invalid parameter type. param-index=4 param-type=numpy.int64', 'HY105')
cursor.executemany(sql, insert_list[:100])

reduzieren zu 5-Tupeln:

cursor.executemany(sql, insert_list[:5])
conn.commit()

Kann dies einfügen um die Datenbank

Ich versuche:

sql = 'SET GLOBAL max_allowed_packet=50*1024*1024'
cursor.execute(sql)

bevor excutemany (), aber Sie haben einen Fehler:

pyodbc.ProgrammingError: ('42000', "[42000] [FreeTDS][SQL Server]'GLOBAL' ist nicht ein anerkanntes SET-option. (195) (SQLExecDirectW)")

Wie ich dieses Problem lösen.

Danke.

InformationsquelleAutor YONG BAGJNS | 2017-02-01
Schreibe einen Kommentar