MySQL存储过程报错: Incorrect number of arguments for PROCEDURE DB.pro_one; expected 1, got 0

MySQL存储过程报错: Incorrect number of arguments for PROCEDURE DB.pro_one; expected 1, got 0

一、问题描述
1、在执行mysql存储过程: call pro_one(); 时,报错: [Err] 1318 - Incorrect number of arguments for PROCEDURE DB.pro_one; expected 1, got 0
2、大意: 参数不正确。
3、执行存储过程代码: call pro_one();

二、存储过程大概代码
CREATE PROCEDURE pro_one(out time VARCHAR(20))
BEGIN
	SELECT now() into time;
end;



三、问题分析及解决
1、由报错信息大意可知,存储过程的参数不正确。
2、看存储过程代码,有一个out 输出参数,而调用存储过程的时候,并没有带参数,所以导致报错。
3、解决: 确定了问题是 缺少参数引起的,那么调用的时候,带上对应参数即可。
4、示例:
call pro_one(@dates);
SELECT @dates;

四、总结
1、对于刚接手的项目,不清楚存储过程的参数情况,可以有以下办法解决:
a、 使用数据库可视化工具,如Navicat : 打开数据库 --- 函数 --- 双击打开 --- 即可看到参数情况。



b、 使用命令: show CREATE PROCEDURE 存储过程名称; -- 通过查看存储过程创建源码的形式,来确定存储过程的参数情况。

c、 查看 information_schema.Routines biao 表来查看存储过程信息。
SELECT * from information_schema.ROUTINES [ where SPECIFIC_NAME='pro_one'];

2、 关于MySQL存储过程,入门使用,请参考这篇文章: https://blog.csdn.net/HaHa_Sir/article/details/79728854



若您有更好的解决办法,或未解决的问题,欢迎留言告知,谢谢。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值