TRABAJAMOS CREANDO PROCEDIMIENTO Y FUNCIONES
para aquellos empleados que tengan mas de 5 propiedades se le agrega un bono segun el parametro.
pare eso creamos lo sig.
-- creamos el procedimiento
create or replace procedure bono2012 (pNumempleado in empleado.NUMEMPLEADO%type, pBono numeric:= 0.01)
is
-- declaramos las variables a ocupar
vSalario empleado.salario%type;
vTotprop numeric;
begin
select salario into vSalario --selecionamos el salario y lo guardamos en vsalrio
from empleado
where numempleado = pNumempleado;
select count(*) into vTotprop -- contamos las propiedades de los empleados y lo guardamos en vTotprop
from propiedad
where numempleado = pNumempleado;
if vTotprop >= 5 then -- vemos si vtotpro es mayor o igual a 5
update empleado
set salario = salario + salario*pBono
where numempleado =pNumempleado; --- aca terminamos de actualizar los valores de los empleados segun el bono
dbms_output.put_line ('empleado'||pnumempleado||'bono'||pBono||'aumento'||vSalario*pBono); -- imprimimos el resultado
else
dbms_output.put_line ('empleado'||pNumempleado||'no aplico bono'); -- imprimimos si no hay resultados
end if;
end bono2012; -- cerramos procedimiento
APLICAMOS BONO A EMPLEADO SL21
begin
bono2012('SL21',pBono => 0.05);
end;
CREAMOS FUNCION CUENTA PROPIEDADES
create or replace function cuentapropiedades (pNumepleado empleado.numempleado%type)
return number
is
vTotprop numeric; -- declaramos variable VTotprop
begin
select count(*) into vTotprop
from propiedad
where numepleado = pNumempleado;
return vTotprop;
exception
when no_data_found then
return 0;
when others then
return 0;
end
LLAMAMOS A LA FUNCION
SELECT cuantapropiedades('SL21') FROM dual
--- CREAMOS FUNCION DONDE AL INGRESAR UN NUMERO ENTREGA LA SUMA DE LOS RESTOS
create or replace function sumadijito(pNumero in number)
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;
LLAMAMOS A LA FUNCION
select sumadijito(125) from dual -- ingresamos el numero 125 entregando como resultado 8
No hay comentarios:
Publicar un comentario