Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Loại tham số không hợp lệ (numpy.int64) khi chèn các hàng có thi hành ()

Vấn đề của bạn không phải ở khối lượng dữ liệu per se , đó là một số bộ giá trị của bạn chứa numpy.int64 các giá trị không thể được sử dụng trực tiếp làm giá trị tham số cho câu lệnh SQL của bạn. Ví dụ,

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

sẽ ném

vì giá trị tham số thứ ba là numpy.int64 phần tử từ mảng numpy của bạn a . Chuyển đổi giá trị đó với int() sẽ tránh được vấn đề:

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

Nhân tiện, lý do mà

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

không hoạt động là max_allowed_packet là một cài đặt MySQL không có bất kỳ ý nghĩa nào đối với 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. Thực hiện Phân tích Sản phẩm bằng Tìm kiếm Toàn văn của Máy chủ SQL. Phần 1

  2. Cách RANK () hoạt động trong SQL Server

  3. Làm cách nào để xoay số cột không xác định &không có tổng hợp trong SQL Server?

  4. Khi nào và cách sử dụng mệnh đề PARTITION BY trong SQL

  5. Cách CHỌN * nhưng không có Tên cột phải là duy nhất trong mỗi dạng xem