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 установить следующий вывод. Я не могу видеть, где я иду не так. Ничего не возвращается. Сам запрос работает отлично автономно.
Подзапрос - причина. Я использую только один курсор для запроса, который потребует два. Im даже не уверен, что подзапросы возможны в SP..
Вы не определяете параметры параметров, насколько я могу судить. Это затруднит получение данных из хранимой процедуры SQL.
DECLARE параметр OUT и введите значение в значение для вывода.
Также одно предложение, всегда полезно использовать @для ваших локальных переменных в хранимых процедурах. таких как @_output, @a и @b.