日期:2014-05-16  浏览次数:20870 次

初次尝试使用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版块