sql >> Databáze >  >> RDS >> Mysql

SqlNullValueException při provádění uložené procedury pomocí MySqlCommand

Vypadá to na chybu v Oracle MySQL Connector/NET (aka MySql.Data ). Nevypadá to jako nějaká chyba, kterou znám v té databázi chyb; možná bude nutné zapsat jako nový problém. (chyba 75301 vypadá podobně, ale není hned zřejmé, že jde o stejný problém.)

Doporučil bych přejít na MySqlConnector ; je to alternativní knihovna ADO.NET pro MySQL, která má skvělou kompatibilitu s Dapper a opravuje mnoho známých chyb v MySQL Connector/NET. MySqlConnector má také skutečnou asynchronní podporu I/O, která není implementována v Connector/NET; to bude důležité, pokud chcete použít QueryAsync ve vašem kódu.

Pokud chcete nadále používat Oracle MySQL Connector/NET, možná budete moci problém obejít přidáním CheckParameters=false k vašemu připojovacímu řetězci. Upozorňujeme, že toto může být zásadní změna k vašemu kódu; pokud toto nastavení nastavíte na hodnotu false, budete muset ručně zajistit, aby parametry přidané do každého CommandType.StoredProcedure MySqlCommand jsou v přesně stejném pořadí jako databáze (protože MySql.Data je již za vás neopraví).

Aktualizace: Po prohlédnutí zdrojového kódu Connector/NET se zdá, že vaše databáze obsahuje nějaká data, která neočekává. Vytváří některý z následujících dvou dotazů řádky? Pokud ano, které hodnoty jsou 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;

Jaký server MySQL používáte (MySQL, MariaDB, Amazon Aurora) a jakou verzi?




  1. MySQL Server na MAMP-Windows se nespustí

  2. UPDATE nebo INSERT MySQL Python

  3. Rekurzivní kategorie s jediným dotazem?

  4. Jak funguje DENSE_RANK() v SQL Server