当我在一个.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)
3条答案
按热度按时间mbjcgjjk1#
从MySQL Client 8.0.21降级到8.0.20是已知良好的解决方法。
该错误已报告给Oracle并得到Oracle的确认。
g0czyy6m2#
Oracle已经发布了MySQL Client 8.0.22,它似乎已经修复了这个问题。发行说明中没有提到我的bug报告--但是有另一个类似的bug。所以也许它是偶然修复的。
MySQL已经关闭了我的错误报告,并声称它在8.0.22中得到了修复。我目前在8.0.23上,看起来很好。
zujrkrfu3#
当您的函数名与存储过程的函数名相同时,将出现此错误。重命名存储过程或函数将解决此问题