Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/01/2012, 10:26
gabymar
 
Fecha de Ingreso: agosto-2008
Mensajes: 94
Antigüedad: 15 años, 9 meses
Puntos: 0
store procedure

hola buenas estoy empezando a trabajar con store procedure combinado con la generacion de un archivo txt con los resultados, el problema es q nada mas se guarda un solo registro en el archivo, quisiera saber si tengo algun error en el codigo, adjunto el codigo, cuando ejecuto el select solamente aparte me trae 41 registros y en el archivo solo se encuentra 1. muchas gracias por su ayuda

[MYSQL]
DROP PROCEDURE IF EXISTS prueba;
SET sql_mode = 'PIPES_AS_CONCAT';
DELIMITER //
CREATE PROCEDURE prueba()
BEGIN
DECLARE vregistro TEXT(276);
DECLARE vdireccion CHAR(255);
DECLARE vco_cte CHAR(11);
DECLARE vnu_rif CHAR(10);
DECLARE vnb_lugar CHAR(40);
DECLARE vcalle_av CHAR(45);
DECLARE vcasa_edf CHAR(30);
DECLARE vapto_ofc CHAR(40);
DECLARE vurbn CHAR(30);
DECLARE vprrq CHAR(30);
DECLARE vmunc CHAR(20);
DECLARE vnb_cdad CHAR(20);
DECLARE sw INTEGER;
DECLARE error INTEGER;
DECLARE vacio INT DEFAULT 0;
DECLARE cursor1 CURSOR FOR
SELECT DISTINCT c.co_cte
,c.nu_rif
,ui.nb_lugar
,d.casaedificio
,d.aptooficina
,d.calleavenida
,d.urbanizacion
,d.parroquia
,d.municipio
,cd.nombreciudad
FROM v_instalacion i
, v_ubic_instalacion ui
, v_cliente c
, direccion d
, ciudad cd
WHERE i.orig_copia=0 AND
i.stat_instl in (0,8) AND
ui.instl=i.instl AND
ui.t_lugar=1 AND
i.co_cte=c.co_cte AND
c.nni_negc=9 AND
ui.nb_lugar=d.nombrelugar AND
d.codciudad=cd.codciudad
ORDER BY 1,2,3;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET vacio= 1;
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET error = 1;

SET vdireccion =' ';
SET vregistro = ' ';
SET sw = 0;

OPEN cursor1;
loop_cursor1: LOOP

FETCH cursor1 INTO vco_cte,vnu_rif,vnb_lugar,vcasa_edf,vapto_ofc,vcal le_av,vurbn,vprrq,vmunc,vnb_cdad;
IF (vacio = 1) THEN
LEAVE loop_cursor1;
END IF;

SET vdireccion = vnb_lugar;
SET vregistro=vco_cte||"|"||vnu_rif||"|"||TRIM(vdirecc ion)||"|";

IF sw = 0 THEN
SELECT vregistro INTO OUTFILE "E:/Documents and Settings/m/Escritorio/spl/dir_ctes_saucos.txt" FIELDS TERMINATED BY '|' LINES TERMINATED BY '\r\n';
SET sw = 1;
ELSE
SELECT vregistro INTO OUTFILE "E:/Documents and Settings/m/Escritorio/spl/dir_ctes_saucos.txt" FIELDS TERMINATED BY '|' LINES TERMINATED BY '\r\n';
END IF;

SET vregistro = ' ';

END LOOP loop_cursor1;
CLOSE cursor1;

SET vacio= 0;

END;
//
DELIMITER ;
call prueba();
[/MYSQL]