Ajuda no Cursor

MySQL

17/07/2013

Pessoal, estou tentando aprender utilizar o Cursor no MySQL, mas ao trocar a seguinte linha

DECLARE meuCursor CURSOR FOR SELECT * FROM TABELAX

por

DECLARE meuCursor CURSOR FOR SQL_TEST

estoura erro. Tentei outros tipos de variáveis como TEXT, VARCHAR, CHAR e entre outros e sem sucesso.
Não posso utilizar o SQL diretamente no cursor, pois dependo desta informação na entrada realizada através dos parâmetros.

Alguém tem alguma dica?


DELIMITER $$
CREATE PROCEDURE EXEMP_CURSOR (
IN SQL_TEST text)
BEGIN
DECLARE no_more_rows BOOLEAN;
DECLARE loop_cntr INT DEFAULT 0;
DECLARE num_rows INT DEFAULT 0;

DECLARE meuCursor CURSOR FOR SQL_TEST

DECLARE CONTINUE HANDLER FOR NOT FOUND
SET no_more_rows = TRUE;

OPEN meuCursor;
SELECT FOUND_ROWS() INTO num_rows;

the_loop: LOOP

FETCH meuCursor

INTO name_val, status_update_val;

IF no_more_rows THEN
CLOSE meuCursor;
LEAVE the_loop;
END IF;

select name_val, status_update_val;

SET loop_cntr = loop_cntr + 1;
END LOOP the_loop;

END $$
DELIMITER ;
Alessandro Yamasaki

Alessandro Yamasaki

Curtidas 0
POSTAR