Cursor para dos campos distintos.
Publicado por alberto (9 intervenciones) el 27/11/2010 19:02:02
Hola amigos tengo un problema con un cursor puedo recorrer un tabla , pero quisiera recorrer y poder obtener los demas valores de la tabla a la que me estoy haciendo referencia , nose si debo usar dos cursores??. com mi ejemplo o solo con uno??
en mi ejemplo quiero sacar dos valores dentro de rpta_1 y rpta_2
graicas
DELIMITER $$
DROP FUNCTION IF EXISTS `busca_error` $$
CREATE DEFINER=`root`@`localhost` FUNCTION `busca_error`() RETURNS int(11)
BEGIN
declare i INT DEFAULT 0;
declare rpta_id INT;
declare rpta_valor char(40);
declare finished INTEGER DEFAULT 0;
declare cur_name_1 CURSOR FOR SELECT p.id FROM productos p;
declare cur_name_2 CURSOR FOR SELECT p.Valor FROM productos p;
declare CONTINUE HANDLER FOR NOT FOUND SET finished = 1;
open cur_name_1;
fun: LOOP
FETCH cur_name_1 INTO rpta_1;
FETCH cur_name_2 INTO rpta_2;
IF finished THEN
LEAVE fun;
END IF;
insert into resultados (id,valor) values (rpta_1,rpta_2);
END LOOP fun;
CLOSE cur_name;
return id;
END $$
DELIMITER ;
en mi ejemplo quiero sacar dos valores dentro de rpta_1 y rpta_2
graicas
DELIMITER $$
DROP FUNCTION IF EXISTS `busca_error` $$
CREATE DEFINER=`root`@`localhost` FUNCTION `busca_error`() RETURNS int(11)
BEGIN
declare i INT DEFAULT 0;
declare rpta_id INT;
declare rpta_valor char(40);
declare finished INTEGER DEFAULT 0;
declare cur_name_1 CURSOR FOR SELECT p.id FROM productos p;
declare cur_name_2 CURSOR FOR SELECT p.Valor FROM productos p;
declare CONTINUE HANDLER FOR NOT FOUND SET finished = 1;
open cur_name_1;
fun: LOOP
FETCH cur_name_1 INTO rpta_1;
FETCH cur_name_2 INTO rpta_2;
IF finished THEN
LEAVE fun;
END IF;
insert into resultados (id,valor) values (rpta_1,rpta_2);
END LOOP fun;
CLOSE cur_name;
return id;
END $$
DELIMITER ;
Valora esta pregunta


0