jueves, 4 de agosto de 2011

CURSOR EXPLICITO



Los cursores explicitos se emplean para realizar consultas SELECT que pueden devolver cero filas, o más de una fila.
    Para trabajar con un cursor explicito necesitamos realizar las siguientes tareas:
  • Declarar el cursor.
  • Abrir el cursor con la instrucción OPEN.
  • Leer los datos del cursor con la instrucción FETCH.
  • Cerrar el cursor y liberar los recursos con la instrucción CLOSE.
    Para declarar un cursor debemos emplear la siguiente sintaxis:

    CURSOR nombre_cursor IS
     instrucción_SELECT
    También debemos declarar los posibles parametros que requiera el cursor:

    CURSOR nombre_cursor(param1 tipo1, ..., paramN tipoN) IS
     instrucción_SELECT
    Para abrir el cursor

     OPEN nombre_cursor;
     o bien (en el caso de un cursor con parámetros)
     OPEN nombre_cursor(valor1, valor2, ..., valorN);
Para recuperar los datos en variables PL/SQL.

 
FETCH nombre_cursor INTO lista_variables;
-- o bien ...
FETCH nombre_cursor INTO registro_PL/SQL;
Para cerrar el cursor:

  CLOSE nombre_cursor;
En el siguiente ejemplo nos pide visualizar el el nombre y la localidad de la tabla departamento
CURSOR CUR IS
SELECT D NOMBRE. LOC FROM DEPTO,
V_NOMBRE VARCHAR2 (14);
V_LOCALIDAD VARCHAR2(14);
BEGIN
OPEN CURL;
LOOP
FECH CUR1 INTO V_NOMBRE, V_LOCALIDAD
EXIT WHEN CUR1% NOT FOUNT
DBMS_OUTPUTLINE(V_NOMBRE II ‘*’ IIV_LOCALIDAD);
END LOOP
CLOSE CUR1;
END
Ejemplo visualiza el nombre y el departamento de todos los empleados
declare
cursor cur4 is
select e.ename,d.dname
from emp e,dept d
where e.deptno=d.deptno;
begin
for v_reg in cur4 loop
DBMS_OUTPUT.PUT_LINE(v_reg.ename);
end loop;
end;
/

No hay comentarios:

Publicar un comentario