estoy aprendiendo procedimientos almacenados, cursores en mysql y me tropiezo en él:captación devuelve NULL
delimiter //
CREATE PROCEDURE some_func()
BEGIN
DECLARE link_rewrite VARCHAR(255);
DECLARE link_rewrite_cursor CURSOR FOR SELECT link_rewrite FROM prod;
OPEN link_rewrite_cursor;
SET @count = 0;
WHILE @count < 10 DO
FETCH link_rewrite_cursor INTO link_rewrite;
SELECT link_rewrite;
set @count = @count + 1;
END WHILE;
CLOSE link_rewrite_cursor;
END//
delimiter ;
Mi pregunta es: ¿Por qué link_rewrite SELECT siempre devuelve NULL (en la tabla prod hay 9000 filas). SELECCIONAR link_rewrite FROM prod devuelve muchas filas (9000 filas).
'SET' no lo declara? –
@Eric Se debe a que Select devuelve algo (en este caso NULL) por lo que, en mi opinión, golpea durante el ciclo. Sí, podrías hacerlo mucho más rápido, pero estoy tratando de aprender los cursores y el procedimiento almacenado. – PaulP
@PaulP, ¿qué le proporciona 'select link_rewrite from prod limit 10'? Si ese es el caso, supongo que tiene valores 'null' en la tabla (independientemente de cuántas filas tenga). – Eric