Inicio > MySql > Cursores en MySql

Cursores en MySql


  En el lenguaje SQL existen los llamados cursores que son útiles para recorrer los registros que devuelve una consulta. Estas estructuras sólo deben utilizarse cuando no haya otra forma de manipular conjuntos de datos en una sola instrucción.

Ejemplo :  Uso de cursores en una fumción

CREATE DEFINER=`root`@`%` FUNCTION `fnListadoTelefono`(nId_Contacto INT) RETURNS VARCHAR(100) CHARSET latin1
BEGIN
 
     /* Declaración de variables */
    DECLARE l_last_row INT DEFAULT 0;
    DECLARE cTeleMail VARCHAR(90) DEFAULT ”;
    DECLARE ResultVar VARCHAR(100) DEFAULT ”;
   
    /* Declaración del cursor de nombre ´cursor1´ */
    DECLARE cursor1 CURSOR FOR SELECT TeleMail FROM TeleMail WHERE Id_Contacto = nId_Contacto;
   
    /* Flag que permitirá saber si existen más registros por recorrer */
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET l_last_row=1;  
   
    /* Abrimos el cursor para empezar a recorrerlo */
    OPEN cursor1;
    c1_loop: LOOP    
       
        /* Cada registro se le otorga a la variable ‘cTeleMail’ */
        FETCH cursor1 INTO cTeleMail;        
        IF (l_last_row=1) THEN           
            LEAVE c1_loop;        
        END IF;
       
        /* Lógica propia de la función que se está creando */
        IF ResultVar = ” THEN
            SET ResultVar = TRIM(cTeleMail);
        ELSE
            SET ResultVar = CONCAT(ResultVar , ‘ ; ‘ , TRIM(cTeleMail));
        END IF;
       
    END LOOP c1_loop;
   
    /* cerramos el cursor y retornamos el dato que nos interesa en este caso la variable ‘ResultVar’ */
   
    CLOSE cursor1;
    RETURN ResultVar;   

END

Categorías:MySql
  1. Aún no hay comentarios.
  1. 7 julio 2010 a las 2:16 am

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: