Ditt problem är inte mängden data i och för sig , det är att några av dina tupler innehåller numpy.int64
värden som inte kan användas direkt som parametervärden för din SQL-sats. Till exempel,
a = numpy.array([10, 11, 12], dtype=numpy.int64)
params = (1, 1, a[1], 1, 1, 1)
crsr.execute(sql, params)
kommer att kasta
eftersom det tredje parametervärdet är en numpy.int64
element från din numpy array a
. Konvertera det värdet med int()
kommer att undvika problemet:
a = numpy.array([10, 11, 12], dtype=numpy.int64)
params = (1, 1, int(a[1]), 1, 1, 1)
crsr.execute(sql, params)
Förresten, anledningen till att
sql = 'SET GLOBAL max_allowed_packet=50*1024*1024'
cursor.execute(sql)
inte fungerade är att max_allowed_packet
är en MySQL-inställning som inte har någon betydelse för Microsoft SQL Server.