Twój problem nie dotyczy ilości danych per se , niektóre z twoich krotek zawierają numpy.int64
wartości, których nie można używać bezpośrednio jako wartości parametrów dla instrukcji SQL. Na przykład
a = numpy.array([10, 11, 12], dtype=numpy.int64)
params = (1, 1, a[1], 1, 1, 1)
crsr.execute(sql, params)
rzuci
ponieważ trzecia wartość parametru to numpy.int64
element z Twojej tablicy numpy a
. Konwertowanie tej wartości za pomocą int()
uniknie problemu:
a = numpy.array([10, 11, 12], dtype=numpy.int64)
params = (1, 1, int(a[1]), 1, 1, 1)
crsr.execute(sql, params)
Przy okazji, powód, dla którego
sql = 'SET GLOBAL max_allowed_packet=50*1024*1024'
cursor.execute(sql)
nie zadziałało to, że max_allowed_packet
to ustawienie MySQL, które nie ma żadnego znaczenia dla Microsoft SQL Server.