Oracle .NET MySQL 8.0.21 客户端抛出奇怪的"same name are not supported"错误



当我在.net core 3.1应用程序中从MySQL Client 8.0.20升级到8.0.21时,我在尝试调用AWS Aurora中的存储过程时遇到了这个奇怪的错误。

MySql.Data.MySqlClient.MySqlException (0x80004005): same name are not supported.
at MySql.Data.MySqlClient.ProcedureCache.GetProcData(MySqlConnection connection, String spName)
at MySql.Data.MySqlClient.ProcedureCache.AddNew(MySqlConnection connection, String spName)
at MySql.Data.MySqlClient.ProcedureCache.GetProcedure(MySqlConnection conn, String spName, String cacheKey)
at MySql.Data.MySqlClient.StoredProcedure.CheckParameters(String spName)
at MySql.Data.MySqlClient.StoredProcedure.Resolve(Boolean preparing)
at MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior)

在8.0.20(以及之前的几个版本(中,它工作时没有任何抱怨。我在InterTubes上找不到关于这个错误的任何信息。

程序(非常简单的搜索程序(:

CREATE DEFINER=`cdapoe`@`%` PROCEDURE `find_oeauthorizationassigned`(
IN p_username VARCHAR(120),
IN p_active_utc DATETIME
)
READS SQL DATA
select * from oeauthorization.oeauthorizationassigned
where username=p_username and (p_active_utc < expiration_utc or expiration_utc is null)

从MySQL Client 8.0.21降级到8.0.20是一个众所周知的好方法。

该错误已向Oracle报告并得到Oracle的确认。

Oracle发布了MySQL Client 8.0.22,似乎已经解决了这个问题。发行说明中没有提到我的错误报告,但还有另一个听起来类似的错误。所以也许它是偶然修复的。

MySQL已经关闭了我的错误报告,并声称它已在8.0.22中修复。我现在是8点23分,看起来很好。

当函数名与存储过程相同时,会出现此错误。重命名存储过程或函数将解决问题

相关内容

最新更新