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

SqlNullValueException khi thực thi một thủ tục được lưu trữ với MySqlCommand

Điều này trông giống như một lỗi trong Trình kết nối MySQL / NET của Oracle (hay còn gọi là MySql.Data ). Nó không giống bất kỳ lỗi nào mà tôi quen thuộc trong cơ sở dữ liệu lỗi đó; nó có thể cần phải được nộp dưới dạng một vấn đề mới. ( Lỗi 75301 trông giống nhau nhưng không rõ ràng là cùng một vấn đề.)

Tôi khuyên bạn nên chuyển sang MySqlConnector ; đó là một thư viện ADO.NET thay thế cho MySQL có khả năng tương thích tuyệt vời với Dapper và sửa nhiều lỗi đã biết trong MySQL Connector / NET. MySqlConnector cũng có hỗ trợ I / O không đồng bộ thực sự, điều này không được triển khai trong Trình kết nối / NET; điều này sẽ quan trọng nếu bạn muốn sử dụng QueryAsync trong mã của bạn.

Nếu bạn muốn tiếp tục sử dụng Trình kết nối MySQL / NET của Oracle, bạn có thể khắc phục sự cố bằng cách thêm CheckParameters=false vào chuỗi kết nối của bạn. Lưu ý rằng đây có thể là một thay đổi đột ngột mã của bạn; nếu bạn đặt cài đặt thành false, bạn sẽ phải đảm bảo rằng các tham số được thêm vào mỗi CommandType.StoredProcedure theo cách thủ công MySqlCommand theo thứ tự chính xác như cơ sở dữ liệu (vì MySql.Data sẽ không sửa chúng cho bạn nữa).

Cập nhật: Sau khi xem mã nguồn Connector / NET, có vẻ như cơ sở dữ liệu của bạn có một số dữ liệu mà nó không mong đợi. Một trong hai truy vấn sau đây có tạo ra hàng không? Nếu vậy, (các) giá trị nào là NULL ?

SELECT * FROM information_schema.routines
WHERE specific_name IS NULL OR
    routine_schema IS NULL OR
    routine_name IS NULL OR
    routine_type IS NULL OR
    routine_definition IS NULL OR
    is_deterministic IS NULL OR
    sql_data_access IS NULL OR
    security_type IS NULL OR
    sql_mode IS NULL OR
    routine_comment IS NULL OR
    definer IS NULL;

SELECT * FROM mysql.proc
WHERE specific_name IS NULL OR
    db IS NULL OR
    name IS NULL OR
    type IS NULL OR
    body IS NULL OR
    is_deterministic IS NULL OR
    sql_data_access IS NULL OR
    security_type IS NULL OR
    sql_mode IS NULL OR
    comment IS NULL OR
    definer IS NULL;

Bạn đang sử dụng Máy chủ MySQL nào (MySQL, MariaDB, Amazon Aurora) và phiên bản nào?




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tìm giá trị n cao nhất của mỗi nhóm trong MySQL

  2. jQuery Autocomplete (Remote) - ví dụ

  3. Lỗi liên kết truyền thông, Spring Boot + MySql + Docker + Hibernate

  4. Làm cách nào để phát hiện giao dịch đó đã được bắt đầu?

  5. MySQL trong đám mây - Di chuyển trực tuyến từ Amazon RDS sang Phiên bản EC2:Phần một