DECLARE CURSOR cur1 IS SELECT dnombre, loc FROM DEPART; v_nombre DEPART.DNOMBRE%TYPE; v_localidad DEPART.LOC%TYPE; BEGIN OPEN cur1; LOOP FETCH cur1 INTO v_nombre, v_localidad; EXIT WHEN cur1%NOTFOUND; DBMS_OUTPUT.PUT_LINE('Departamento: ' || v_nombre || '; Localidad: ' || v_localidad); END LOOP; CLOSE cur1; END;
DECLARE CURSOR cur1 IS SELECT dnombre, loc FROM DEPART; v_nombre DEPART.DNOMBRE%TYPE; v_localidad DEPART.LOC%TYPE; Se declara el cursor, y se deja listo para que empecemos a trabajar con él ¿Implica alguna operación en memoria? NO ZONA DE VARIABLESZONA DE CURSORES DECLARE CURSOR cur1 IS SELECT dnombre, loc FROM DEPART; v_nombre DEPART.DNOMBRE%TYPE; v_localidad DEPART.LOC%TYPE; v_nombre v_localidad cur1
BEGIN OPEN cur1; LOOP FETCH cur1 INTO v_nombre, v_localidad; ZONA DE VARIABLESZONA DE CURSORES v_nombre v_localidad cur1 DEPT_NODNOMBRELOC 10CONTABILIDADSEVILLA 20INVESTIGACIÓNMADRID 30VENTASBARCELONA 40PRODUCCIÓNBILBAO DEPART cur1 1 2 DNOMBRELOC CONTABILIDADSEVILLA INVESTIGACIÓNMADRID VENTASBARCELONA PRODUCCIÓNBILBAO Crea, en la zona de cursores, la estructura vacía. 2.Ejecuta la consulta. 3.Almacena los resultados en la zona de cursores. 4.Coloca el puntero del cursor en la primera fila.
OPEN cur1; LOOP FETCH cur1 INTO v_nombre, v_localidad; EXIT WHEN cur1%NOTFOUND; DBMS_OUTPUT.PUT_LINE('Departamento: ' || v_nombre || '; Localidad: ' || v_localidad); END LOOP; ZONA DE CURSORES cur1 DNOMBRELOC CONTABILIDADSEVILLA INVESTIGACIÓNMADRID VENTASBARCELONA PRODUCCIÓNBILBAO ZONA DE VARIABLES v_nombre v_localidad cur1 CONSOLA CONTABILIDAD SEVILLA
OPEN cur1; LOOP FETCH cur1 INTO v_nombre, v_localidad; EXIT WHEN cur1%NOTFOUND; DBMS_OUTPUT.PUT_LINE('Departamento: ' || v_nombre || '; Localidad: ' || v_localidad); END LOOP; ZONA DE CURSORES cur1 DNOMBRELOC CONTABILIDADSEVILLA INVESTIGACIÓNMADRID VENTASBARCELONA PRODUCCIÓNBILBAO ZONA DE VARIABLES v_nombre v_localidad cur1 CONSOLA CONTABILIDAD SEVILLA … ¿Está la flecha roja en la zona Puntos? ¡NO! Repetimos…
OPEN cur1; LOOP FETCH cur1 INTO v_nombre, v_localidad; EXIT WHEN cur1%NOTFOUND; DBMS_OUTPUT.PUT_LINE('Departamento: ' || v_nombre || '; Localidad: ' || v_localidad); END LOOP; ZONA DE CURSORES cur1 DNOMBRELOC CONTABILIDADSEVILLA INVESTIGACIÓNMADRID VENTASBARCELONA PRODUCCIÓNBILBAO ZONA DE VARIABLES v_nombre v_localidad cur1 CONSOLA CONTABILIDAD SEVILLA … Departamento: CONTABILIDAD; Localidad: SEVILLA;
OPEN cur1; LOOP FETCH cur1 INTO v_nombre, v_localidad; EXIT WHEN cur1%NOTFOUND; DBMS_OUTPUT.PUT_LINE('Departamento: ' || v_nombre || '; Localidad: ' || v_localidad); END LOOP; ZONA DE CURSORES cur1 DNOMBRELOC CONTABILIDADSEVILLA INVESTIGACIÓNMADRID VENTASBARCELONA PRODUCCIÓNBILBAO ZONA DE VARIABLES v_nombre v_localidad cur1 CONSOLA INVESTIGACIÓN MADRID … Departamento: CONTABILIDAD; Localidad: SEVILLA;
OPEN cur1; LOOP FETCH cur1 INTO v_nombre, v_localidad; EXIT WHEN cur1%NOTFOUND; DBMS_OUTPUT.PUT_LINE('Departamento: ' || v_nombre || '; Localidad: ' || v_localidad); END LOOP; ZONA DE CURSORES cur1 DNOMBRELOC CONTABILIDADSEVILLA INVESTIGACIÓNMADRID VENTASBARCELONA PRODUCCIÓNBILBAO ZONA DE VARIABLES v_nombre v_localidad cur1 CONSOLA PRODUCCIÓN BILBAO … Departamento: CONTABILIDAD; Localidad: SEVILLA; Departamento: INVESTIGACIÓN; Localidad: MADRID; Departamento: VENTAS; Localidad: BARCELONA; ¿Está la flecha roja en la zona Puntos? Última iteración ¡SI! Última iteración (No nos salimos en este momento)
OPEN cur1; LOOP FETCH cur1 INTO v_nombre, v_localidad; EXIT WHEN cur1%NOTFOUND; DBMS_OUTPUT.PUT_LINE('Departamento: ' || v_nombre || '; Localidad: ' || v_localidad); END LOOP; ZONA DE CURSORES cur1 DNOMBRELOC CONTABILIDADSEVILLA INVESTIGACIÓNMADRID VENTASBARCELONA PRODUCCIÓNBILBAO ZONA DE VARIABLES v_nombre v_localidad cur1 CONSOLA PRODUCCIÓN BILBAO … Departamento: CONTABILIDAD; Localidad: SEVILLA; Departamento: INVESTIGACIÓN; Localidad: MADRID; Departamento: VENTAS; Localidad: BARCELONA; Departamento: PRODUCCIÓN; Localidad: BILBAO; Ahora si, terminamos el bucle.
END LOOP; CLOSE cur1; END; ZONA DE CURSORES cur1 DNOMBRELOC CONTABILIDADSEVILLA INVESTIGACIÓNMADRID VENTASBARCELONA PRODUCCIÓNBILBAO ZONA DE VARIABLES v_nombre v_localidad cur1 CONSOLA PRODUCCIÓN BILBAO … Departamento: CONTABILIDAD; Localidad: SEVILLA; Departamento: INVESTIGACIÓN; Localidad: MADRID; Departamento: VENTAS; Localidad: BARCELONA; Departamento: PRODUCCIÓN; Localidad: BILBAO;