Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/05/2013, 21:22
Avatar de rocha7778
rocha7778
 
Fecha de Ingreso: mayo-2013
Ubicación: Cartagena Colombia
Mensajes: 79
Antigüedad: 10 años, 11 meses
Puntos: 1
Pregunta como saber cuando colocar ; (punto y como) dentro de un stored procedure en mysql

Código MySQL:
Ver original
  1. DELIMITER $$
  2.  
  3. /*[DEFINER = { user | CURRENT_USER }]*/
  4. PROCEDURE `test`.`p25` (OUT return_val INT)
  5. /*LANGUAGE SQL
  6.     | [NOT] DETERMINISTIC
  7.     | { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }
  8.     | SQL SECURITY { DEFINER | INVOKER }
  9.     | COMMENT 'string'*/
  10.   DECLARE a,
  11.   b INT ;
  12.   DECLARE curs_1 CURSOR FOR
  13.   SELECT
  14.     s1
  15.   FROM
  16.     t2 ;
  17.   DECLARE CONTINUE HANDLER FOR NOT FOUND SET b = 1 ;
  18.   OPEN curs_1 ;
  19.     FETCH curs_1 INTO a ;
  20.     UNTIL b = 1
  21.   END REPEAT ;
  22.   CLOSE curs_1 ;
  23.   SET return_val = a ;
  24. END $$
  25.  
  26. DELIMITER ;

Hola a todos este es mi código, bajado de Internet, hasta el momento estoy trabajando con sp, y la pregunta es la del titulo, dado que
en la sentencia UNTIL B=1 finalizaba con un (;) y al quitarlo funciono.

Se que todas las instrucción MySQL finalizan con un ;
pero dentro de un STORED PROCEDURE como saber exactamente cuando utilizar este signo?

la tabla a la que se consulta es muy sencilla

Código MySQL:
Ver original
  1. CREATE TABLE t2 ( s1 INT );

la tabla contiene 3 datos, al recorrerla guarda el ultimo valor en la variable a;

De ante mano mil gracias.

Última edición por gnzsoloyo; 04/05/2013 a las 04:21 Razón: SQL mal etiquetado.