Oracle .NET MySQL 8.0.21客户端抛出奇怪的“不支持同名”错误

34gzjxbg  于 2023-04-05  发布在  Mysql
关注(0)|答案(3)|浏览(133)

当我在一个.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)
mbjcgjjk

mbjcgjjk1#

从MySQL Client 8.0.21降级到8.0.20是已知良好的解决方法。
该错误已报告给Oracle并得到Oracle的确认。

g0czyy6m

g0czyy6m2#

Oracle已经发布了MySQL Client 8.0.22,它似乎已经修复了这个问题。发行说明中没有提到我的bug报告--但是有另一个类似的bug。所以也许它是偶然修复的。
MySQL已经关闭了我的错误报告,并声称它在8.0.22中得到了修复。我目前在8.0.23上,看起来很好。

zujrkrfu

zujrkrfu3#

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

相关问题