Procedimientos
create or replace procedure bono2012 (pnumempleado in empleado.numempleado%type, pbono numeric:=0.01)
is
vsalario empleado.salario%type;
vtotprop numeric;
begin
select salario into vsalario
from empleado
where numempleado=pnumempleado
select count(*) into vtotprop
from propiedad
where numempleado=pnumempleado
if vtotprop >=5 then
update empleado
set salario=salario+salario*pbono
where numempleado=pnumempleado
dbms_output.put_line('empleado' || pnumempleado || 'bono' || pbono || 'aumento' || vsalario*pbono);
else
dbms_output.put_line('empleado' || pnumempleado || "no aplica bono");
end if
end
Para llamar al procedimiento:
begin
bono2012('SL21',0.03);
end
Procedimientos:
formal: es el que usa en la creacion.
real: es el que usa para llamarlo.
Funciones
create or replace function cuentapropiedades(pnumempleado empleado.numempleado%type)
return number;
is
vtotprop numeric;
begin
select count(*) into vtotprop
from propiedad
where numempleado=pnumempleado
return vtotprop;
end
select cuenta propiedad ('SL21') from dual;
create or replace function sumadigitos (pnumero integer)
return number
is
num_aux number;
suma number;
begin
num_aux=pnumero;
suma :=0;
while num_aux > 0 loop
suma=suma+mod(num_aux,10);
num_aux=trunc(num_aux/10);
end loop;
return suma;
end;
viernes, 6 de enero de 2012
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario