为了账号安全,请及时绑定邮箱和手机立即绑定

存储过程报错

调用存储过程 一直报下面这个错误,怎么回事? : call execute_seckill(           ?,           ?,           ?,           ?         ) ### Cause: java.sql.SQLException: Parameter number 4 is not an OUT parameter

正在回答

3 回答

同样的问题,有大佬解决了么,差了好久了

0 回复 有任何疑惑可以回复我~
#1

iOS小车

解决了,我没有预编译
2018-12-06 回复 有任何疑惑可以回复我~
#2

凉橙2 回复 iOS小车

怎么解决
2019-08-24 回复 有任何疑惑可以回复我~

没有错,一样的

0 回复 有任何疑惑可以回复我~
DELIMITER $$ --console ; 转换为   $$    
--定义存储过程    
--参数:in 输入参数; out 输入参数    
--row_count():返回上一条修改类型sql的影响行数    
--row_count :0;未修改数据; >0;表示修改的行数;<0:sql错误或者未执行sql    
CREATE PROCEDURE `seckill`.`execute_seckill`    
(in v_seckill_id bigint,in v_phone bigint,    
in v_kill_time timestamp,out r_result int)    
BEGIN    
	DECLARE insert_count int default 0;    
	START TRANSACTION;    
	insert ignore into success_killed    
	(seckill_id,user_phone,create_time)    
	values (v_seckill_id,v_phone,v_kill_time);    
	select row_count() into insert_count;    
	IF (insert_count = 0) THEN    
	ROLLBACK;    
	set r_result = -1;    
	ELSEIF (insert_count < 0) THEN    
	ROLLBACK;    
	set r_result = -2;    
	ELSE    
	update seckill    
	set number = number -1    
	where seckill_id = v_seckill_id    
	and start_time < v_kill_time    
	and end_time > v_kill_time    
	and number > 0;    
	select row_count() into insert_count;    
	IF (insert_count = 0) THEN    
	ROLLBACK;    
	set r_result = 0;    
	ELSEIF (insert_count < 0) THEN    
	ROLLBACK;    
	set r_result = -2;    
	ELSE    
	COMMIT;    
	set r_result = 1;    
	END IF;    
	END IF;    
END;    
$$

execute_seckill存储过程在创建的时候名字又没有拼错?

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Java高并发秒杀API之高并发优化
  • 参与学习       78467    人
  • 解答问题       170    个

Java实现高并发秒杀API的第四门课,小伙伴一定可以从中受益

进入课程

存储过程报错

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信