Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Jenis parameter tidak valid (numpy.int64) saat memasukkan baris dengan executemany()

Masalah Anda bukan pada volume data per se , beberapa tupel Anda mengandung numpy.int64 nilai yang tidak dapat digunakan secara langsung sebagai nilai parameter untuk pernyataan SQL Anda. Misalnya,

a = numpy.array([10, 11, 12], dtype=numpy.int64)
params = (1, 1, a[1], 1, 1, 1)
crsr.execute(sql, params)

akan melempar

karena nilai parameter ketiga adalah numpy.int64 elemen dari array numpy Anda a . Mengonversi nilai tersebut dengan int() akan menghindari masalah:

a = numpy.array([10, 11, 12], dtype=numpy.int64)
params = (1, 1, int(a[1]), 1, 1, 1)
crsr.execute(sql, params)

Omong-omong, alasan

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

tidak berhasil adalah max_allowed_packet adalah pengaturan MySQL yang tidak memiliki arti apa pun untuk Microsoft SQL Server.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Lakukan Analisis Produk menggunakan Pencarian Teks Lengkap SQL Server. Bagian 1

  2. Cara berputar secara dinamis dengan tanggal sebagai kolom

  3. Urutan sebagai nilai default untuk kolom

  4. Kontrol Sumber dan prosedur tersimpan

  5. Bagaimana cara membuat indeks unik pada kolom NULL?