問題は、データの量自体ではありません 、一部のタプルにnumpy.int64
が含まれている可能性があります SQLステートメントのパラメーター値として直接使用できない値。たとえば、
a = numpy.array([10, 11, 12], dtype=numpy.int64)
params = (1, 1, a[1], 1, 1, 1)
crsr.execute(sql, params)
投げます
3番目のパラメーター値はnumpy.int64
であるため numpy配列の要素a
。その値をint()
で変換する 問題を回避します:
a = numpy.array([10, 11, 12], dtype=numpy.int64)
params = (1, 1, int(a[1]), 1, 1, 1)
crsr.execute(sql, params)
ちなみに、その理由
sql = 'SET GLOBAL max_allowed_packet=50*1024*1024'
cursor.execute(sql)
動作しなかったのは、max_allowed_packet
は、MicrosoftSQLServerにとって意味のないMySQL設定です。