Mysql
 sql >> база данни >  >> RDS >> Mysql

SqlNullValueException при изпълнение на съхранена процедура с MySqlCommand

Това изглежда като грешка в MySQL Connector/NET на Oracle (известен още като MySql.Data ). Не изглежда като никакъв бъг, с който съм запознат в тази база данни за грешки; може да се наложи да се подаде като нов проблем. (Бъг 75301 изглежда подобно, но не е веднага очевидно, че това е същият проблем.)

Бих препоръчал да преминете към MySqlConnector ; това е алтернативна библиотека ADO.NET за MySQL, която има страхотна съвместимост с Dapper и поправя много известни грешки в MySQL Connector/NET. MySqlConnector също има истинска поддръжка за асинхронен I/O, която не е внедрена в Connector/NET; това ще бъде важно, ако искате да използвате QueryAsync във вашия код.

Ако искате да продължите да използвате MySQL Connector/NET на Oracle, може да успеете да заобиколите проблема, като добавите CheckParameters=false към вашия низ за връзка. Имайте предвид, че това може да е критична промяна към вашия код; ако зададете настройката на false, ще трябва ръчно да се уверите, че параметрите, добавени към всеки CommandType.StoredProcedure MySqlCommand са в същия ред като базата данни (защото MySql.Data вече няма да ги коригира вместо вас).

Актуализация: След като разгледате изходния код на Connector/NET, изглежда, че вашата база данни има някои данни, които не очаква. Някоя от следните две заявки произвежда ли редове? Ако е така, кои стойности са 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;

Какъв MySQL сървър използвате (MySQL, MariaDB, Amazon Aurora) и коя версия?




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да промените пътя на mysql услугите

  2. Как да извлечете записи за съвпадение в множество таблици в MySQL

  3. Операнд трябва да съдържа 1 колона - MySQL НЕ В

  4. Как да реализирам просто търсене в сайта с php и mySQL?

  5. Как да накарам UTF-8 да работи в уеб приложения на Java?