Error number: 3601; Symbol: ER_INVALID_NO_OF_ARGS; SQLSTATE: HY000
Message: Too many arguments for function %s: %lu; maximum allowed is %s.
Error number: 3601; Symbol: ER_INVALID_NO_OF_ARGS; SQLSTATE: HY000
错误说明:
Error number:3601; Symbol: ER_INVALID_NO_OF_ARGS; SQLSTATE: HY000 错误指的是MySQL的数量参数无效的错误状态码,意思是提供的函数调用参数的数量不符合定义要求,该错误通常由两个原因造成:1)参数提供的数量不正确;2)Function定义中参数的类型不正确。
1. 我们在执行函数调用时,提供的参数数量不正确,比如若将 LOWER()函数调用写成如下形式:
LOWER (user_name, ‘lowercase’)
这会导致函数调用时报错,报错信息为 Error number: 3601; Symbol: ER_INVALID_NO_OF_ARGS
2. 再比如,我们将函数调用的参数的类型写有错误,像下面的例子:
LOWER (12345)
因为LOWER()函数只接受string类型作为参数,而此次调用的参数是integer类型,这时候也会发生此错误,报错信息为Error number: 3601; Symbol: ER_INVALID_NO_OF_ARGS
解决方法:
对于原因1),我们应该检查Function定义,看看提供的参数是否正确、数量是否正确。
使用的函数调用参数的数量应当与原有定义的数量一致,而不应该多几个或者少几个参数。
对于原因2),我们可以检查定义的函数参数的类型,验证调用的参数的类型是否与定义的参数的类型一致,避免参数类型不正确导致函数调用报错的情况发生。