lunes, 2 de diciembre de 2013

cursores explicitos funcionamiento

Cursores explícitos

Los cursores explícitos los utilizamos cuando tenemos consultas que nos devuelven más de una fila. 
Tenemos 4 operaciones básicas para trabajar con un cursor explícito. 
  1. Declaración del cursor: lo tenemos que declarar en la zona de declaraciones, con el siguiente formato:CURSOR <nombrecursor> IS <sentencia SELECT>;
  2. Apertura del cursor: Deberá colocarse en la zona de instrucciones, con el siguiente formato: 
    OPEN <nombrecursor>;
    Al hacerlo se ejecuta automáticamente la sentencia select y sus resultados se almacenan en las estructuras internas de memoria manejadas por el cursor.
  3. Recogida de información: Para recuperar la información anteriormente guardada en las estructuras de memoria interna tenemos que usar el siguiente formato: 
    FETCH <nombrecursor> INTO {<variable> | <listavariables>};
    Si tenemos una única variable que recoge los datos de todas las columnas, el formato de la variable seria el siguiente: 
    <variable> <nombrecursor>%ROWTYPE;
    Si tenemos una lista de variables, cada una recogerá la columna correspondiente de la cláusula select, por lo que serán del mismo tipo que las columnas.
  4. - Cierre del cursor: 
    CLOSE <nombrecursor>;
Ahora, veamos un ejemplo de utilización de cursores explícitos:
DECLARE   
   CURSOR C1 IS SELECT nombre, apellido FROM arbitro;
   Vnom VARCHAR2(12);
   Vape    VARCHAR2(20);
BEGIN
   OPEN C1;
   LOOP 
      FETCH C1 INTO Vnom, Vape;
      EXIT WHEN C1%NOTFOUND;
      DBMS_OUTPUT.PUT_LINE(Vnom || '' || Vapen);
   END LOOP;
   CLOSE C1;
END;

No hay comentarios:

Publicar un comentario