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