Un cursor explicito lo tenemos que declarar de la siguiente manera
CURSOR <nombrecursor> IS <sentencia SELECT>;
Bucle LOOP con una sentencia EXIT condicionada.
set
serveroutput on
Declare
cursor
Lista is select employee_id, first_name, last_name from employees;
_id
employees. employee_id%TYPE;
_nombre
employees.first_name%TYPE;
_apellido
employees.last_name%TYPE;
Begin
open
Lista;
loop
fetch Lista into _id,_nombre,_apellido;
exit when Lista%NOTFOUND;
dbms_output.put_line('ID: ' ||_id|| '
NOMBRE: ' ||_nombre|| ' APELLIDO: ' ||_apellido);
end loop;
close
Lista;
exception
when others
then
dbms_output.put_line(SQLERRM||' Error en la ejecución del programa');
end;
**************************************************************************
Bucle WHILE LOOP
set
serveroutput on
declare
Cursor
Lista is select employee_id, first_name from employees;
_id employees.employee_id%TYPE
_nombre
employees.first_name%TYPE;
_apellido
employees. last_name%TYPE;
begin
open Lista;
fetch Lista into _id,_nombre,_apellido;
while Lista%FOUND
loop
fetch Lista into
_id,_nombre,v+_apellido;
exit when Lista%NOTFOUND;
dbms_output.put_line('ID: ' ||_id|| '
NOMBRE: ' ||_nombre|| ' APELLIDO: ' ||_apellido);
end loop;
close Lista;
exception
when
others then
dbms_output.put_line(SQLERRM||' Error en la ejecución del programa');
end;
********************************************************************
Bucle FOR LOOP
set serveroutput on
declare
Cursor Lista is select employee_id,
first_name, last_name from employees;
Begin
For Empleado in Lista
Loop
dbms_output.put_line('id: ' ||empleado.employee_id|| ' name: '
||empleado.first_name|| ' lastName' ||empleado.last_name);
End Loop;
Exception
when others then
dbms_output.put_line(SQLERRM||' Error en la ejecución del programa');
End;
No hay comentarios:
Publicar un comentario