Creando paquete en Oracle con procediemientos Listar, Buscar,Agregar,Actualizar,Eliminar
Create Or Replace Package Pais
As
Procedure Listar;
Procedure
Buscar(vCodPais TPais.CodPais%Type);
procedure
Agregar(vCodPais char,vNombre varchar2);
procedure
Actualizar(vCodPais char,vNombre varchar2);
procedure
Eliminar(vCodPais char);
end;
Create or replace Package Body Pais
as
Procedure Listar
Is
Cursor Cpais Is
Select * From Tpais;
R Tpais%Rowtype;
Begin
Open Cpais;
Loop
Fetch Cpais Into R;
Exit
When Cpais%Notfound;
Dbms_Output.Put_Line('Codpais:
'||R.Codpais);
Dbms_Output.Put_Line('Nombre:
'||R.Nombre);
End Loop;
Close Cpais;
End;
procedure Buscar
(vCodPais TPais.CodPais%Type)
Is
Cursor cBuscar is select
* from TPais where CodPais=vCodPais;
r TPais%rowtype;
i number :=0 ;
Begin
Open cBuscar;
Loop
Fetch cBuscar into r;
Exit When cBuscar%notfound;
DBMS_OutPut.Put_Line('CodPais: '||r.CodPais);
DBMS_OutPut.Put_Line('Nombre: '||r.Nombre);
i:= i+1;
End loop;
Close cBuscar;
if (i=0) then
DBMS_OutPut.Put_Line('Error: No se encontro el Pais');
end if;
End;
procedure Agregar
(
vCodPais char,vNombre varchar2)
is
i number;
eCodPais exception;
Begin
select count(*)
into i from TPais where
CodPais=vCodPais;
if (i<>0)
Then
raise eCodPais;
end if;
Insert into TPais values (vCodPais,vNombre);
Commit;
Dbms_output.put_line('País Agregado Correctamente');
Exception
When eCodPais then
Dbms_output.put_line('Error: Duplicado');
end;
procedure Actualizar
(
vCodPais char,vNombre varchar2)
is
i number;
eCodPais exception;
Begin
select count(*)
into i from TPais where
CodPais=vCodPais;
if (i=0) Then
raise eCodPais;
end if;
Update TPais set
Nombre=vNombre where CodPais=vCodPais;
Commit;
Dbms_output.put_line('País Actualizado Correctamente');
Exception
When eCodPais then
Dbms_output.put_line('Error: No
existe');
end;
procedure Eliminar
(
vCodPais char)
is
i number;
eCodPais exception;
eCliente exception;
Begin
select count(*)
into i from TPais where
CodPais=vCodPais;
if (i=0) Then
raise eCodPais;
end if;
select count(*)
into i From TCliente where CodPais=vCodPais;
if (i<>0) then
raise
eCliente;
end if;
Delete
TPais where CodPais=vCodPais;
Commit;
Dbms_output.put_line('País Eliminado Correctamente');
Exception
When eCodPais then
Dbms_output.put_line('Error: No
existe');
When eCliente then
Dbms_output.put_line('Error: País
existe en Cliente');
end;
end;
Begin
Pais.Listar;
end;
Begin
Pais.Buscar('P00002');
end;
No hay comentarios.:
Publicar un comentario
Gracias por participar ..!!