Mysql
 sql >> Baza danych >  >> RDS >> Mysql

SqlNullValueException podczas wykonywania procedury składowanej z MySqlCommand

Wygląda to na błąd w Oracle MySQL Connector/NET (aka MySql.Data ). Nie wygląda na żaden znany mi błąd w tej bazie błędów; może być konieczne zgłoszenie nowego wydania. (Błąd 75301 wygląda podobnie, ale nie jest od razu oczywiste, że to ten sam problem.)

Polecam przejście na MySqlConnector ; jest to alternatywna biblioteka ADO.NET dla MySQL, która ma świetną kompatybilność z Dapperem i naprawia wiele znanych błędów w MySQL Connector/NET. MySqlConnector ma również prawdziwą obsługę we/wy asynchronicznej, która nie jest zaimplementowana w złączu/sieci; będzie to ważne, jeśli chcesz użyć QueryAsync w kodzie.

Jeśli chcesz nadal używać Oracle MySQL Connector/NET, możesz obejść ten problem, dodając CheckParameters=false do ciągu połączenia. Pamiętaj, że może to być przełomowa zmiana do twojego kodu; jeśli ustawisz to ustawienie na false, będziesz musiał ręcznie upewnić się, że parametry dodane do każdego CommandType.StoredProcedure MySqlCommand są w dokładnie tej samej kolejności co baza danych (ponieważ MySql.Data nie będzie ich już poprawiać za Ciebie).

Aktualizacja: Po przejrzeniu kodu źródłowego Connector/NET wydaje się, że Twoja baza danych zawiera pewne dane, których się nie spodziewa. Czy jedno z poniższych dwóch zapytań generuje wiersze? Jeśli tak, które wartości to 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;

Jakiego serwera MySQL używasz (MySQL, MariaDB, Amazon Aurora) i jakiej wersji?




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Łączenie się z bazą danych Mysql za pomocą C# - potrzebujesz trochę z zestawami danych

  2. pobierz obrazy base64 z bazy danych

  3. Czy ktoś zna znaczenie tego komunikatu o błędzie php?

  4. Jak wygenerować dynamiczną tabelę sekwencji w MySQL?

  5. Jakie efekty daje użycie binarnego zestawienia?