2010-11-17 60 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