DROP PROCEDURE `uuu`//
CREATE DEFINER=`auth_tracker`@`%` PROCEDURE `uuu`()
BEGIN
DECLARE a,b CHAR(50);
DECLARE _output TEXT DEFAULT '';
DECLARE cur1 CURSOR FOR SELECT attribute_name, value
FROM user_product_attribute upa, product_attribute pa
WHERE upa.user_product_id IN
( SELECT upa.user_product_id
FROM user_product_attribute upa, user_product up, product_attribute pa, product p
WHERE pa.attribute_name = 'username'
AND pa.product_attribute_id = upa.product_attribute_id
AND pa.product_id = p.product_id
AND up.status = 'active'
AND p.product_name = 'broadband'
AND upa.value = 'lsolway-dsl' )
AND upa.product_attribute_id = pa.product_attribute_id;
OPEN cur1;
read_loop: LOOP
FETCH cur1 INTO a, b;
SET _output = CONCAT(_output,a,b);
END LOOP;
SELECT _output;
END//
大家好,我正在尝试让SP设置以下输出..我无法看到我出错的地方..没有什么被退回.. 查询本身可以很好地独立运行..
答案 0 :(得分:0)
DECLARE一个OUT参数并将值填入输出中。
还有一个建议,它总是很好地使用@作为存储过程中的局部变量。例如@_output,@ a和@b。
答案 1 :(得分:0)
就我所知,你没有定义任何output parameters。这将使从SQL存储过程中获取数据变得非常困难。
答案 2 :(得分:0)
子查询是原因..我只使用一个游标来进行需要两个的查询..我甚至不确定SP中的子查询是否可行..