2010-11-17 65 views
0
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设置以下输出..我不能看到我要去的地方错了..没有被返回.. 查询本身独立运行。MySQL存储过程 - 输出的问题价值观

回答

0

子查询的原因..我只使用一个光标,将需要两个..即时通讯甚至不知道子查询在SP是可能的查询..

0

声明一个输出参数并将其值填充到输出中。

另外一个建议,它总是很好地使用@为您的存储过程中的本地变量。如@_output,@a和@b。

+0

ERROR 1313(42000):RETURN仅允许在一个功能 我添加了回报,但它回来了上述错误 – Lee 2010-11-17 12:48:53

+0

编辑我的答案。没有注意到MySQL。对于Mysql,您需要输出参数 – 2010-11-17 12:55:56

+0

感谢您的响应,但即使输出变量设置它也有相同的错误。错误1329(02000):没有数据 - 取零,选择或处理零行 – Lee 2010-11-17 13:06:47