CURSORES EXPLICITOS EN ORACLE

--cursor1
declare cursor c3
is
     select nombre from pais;
     vpais varchar2(30);
begin
open c3;
loop
     fetch c3 into vpais;
     exit when c3%notfound;
     dbms_output.put_line('Pais: ' || vpais);
end loop;    
close c3;
end;


--cursor2
DECLARE CURSOR c2
IS
  SELECT PLAZA,NOMBRE,COLEGIO FROM MEDICO WHERE ESPECIALIDAD='0001';
  vplaza medico.plaza%type;
  vnombre medico.nombre%type;
  vcolegio medico.colegio%type;
begin
open c2;
Loop
     fetch c2 into vplaza, vnombre, vcolegio;
     EXIT WHEN c2%NOTFOUND;
     dbms_output.put_line('Plaza: ' || vplaza);
     dbms_output.put_line('Medico: ' || vnombre);
     dbms_output.put_line('Colegio: ' || vcolegio);
End Loop;  
close c2;
end;  

--cursor3
DECLARE
CURSOR c1
IS
  SELECT * FROM USUARIO WHERE CARGO='MEDICO';
  campo usuario%rowtype;
begin
     open c1;
loop
    fetch c1 into campo;
    EXIT WHEN C1%NOTFOUND;
          dbms_output.put_line('Modulo: ' || campo.modulo);
          dbms_output.put_line('Usuario: ' || campo.usuario);
          dbms_output.put_line('Nombre: ' || campo.nombre);
          dbms_output.put_line('---------------------------');
end loop;
close c1;
end;

--cursor and procedure
CREATE OR REPLACE PROCEDURE USP_BUSCAR_USUARIOS(vusu IN varchar2)
IS
BEGIN
DECLARE CURSOR c5
IS
SELECT * FROM USUARIO WHERE USUARIO=vusu;
campo usuario%rowtype;
begin
     open c5;
loop
     fetch c5 into campo;
     EXIT WHEN c5%NOTFOUND;
          dbms_output.put_line('Modulo: ' || campo.modulo);
          dbms_output.put_line('Usuario: ' || campo.usuario);
          dbms_output.put_line('Nombre: ' || campo.nombre);
          dbms_output.put_line('Cargo: ' || campo.cargo);
end loop;
close c5;
end;
END USP_BUSCAR_USUARIOS;



--By Ing. Jhonatan Abal Mejia

Comentarios

Entradas populares

Ejercicios Consola Visual Basic.NET

Numero Capicua Visual Basic

Procedimientos Almacenados ORACLE