初次尝试使用mysql的存储过程,取不出数据
本人初次尝试使用mysql的存储过程。
set @var1 = 0;
call updateProductActivity(@var1);
select @var1;
从数据库只查询一行数据的order_id,却提取不出来数据。请教这是为什么?
高手帮帮我吧!!!
-----------------------------------------------
以下是自定义的存储过程:
DELIMITER $$
DROP PROCEDURE IF EXISTS `test`.`updateProduct`$$
CREATE PROCEDURE `updateProduct`(out result int(10))
BEGIN
DECLARE order_id INT;
DECLARE no_more_order INT DEFAULT 0;
DECLARE order_csr CURSOR FOR SELECT order_id FROM test.order_product WHERE 1=1 LIMIT 1;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET no_more_order=1;
OPEN order_csr;
REPEAT
FETCH FROM order_csr INTO order_id;
SET result = order_id;
UNTIL no_more_order END REPEAT;
CLOSE order_csr;
END$$
DELIMITER ;
------最佳解决方案--------------------mysql语法不熟悉,但是思路应该都是差不多,抓不到数据,是否是表本身就没数据(或insert后没有提交),又或者你的查询指令条件有问题导致没抓到符合条件的数据,这个可以利用debug或者增加打印语句都可以慢慢试出来。
------其他解决方案--------------------发错版块了,大哥,这里是ORACLE版块