Preparacion para la prueba de mañana
sera prueba escrita y siguiendo el mismo estilo de la anterior, alternativas y desarrollo
Ejercicio 1
create or replace procedure bono2012 (Pnumemepleado in empleado.numempleado%type, pbono numeric)
is
vsalario empleado.salario%type;
vtotprop numeric;
begin
select salario into vsalario
from empleado
where numempleado = Pnumemepleado;
select count(*) into vtotprop
from propiedad
where numempleado = Pnumemepleado;
if vtotprop>=5 then
update empleado set salario = salario+salario*pbono
where numempleado = Pnumemepleado;
dbms_output.put_line('empleado 'Pnumemepleado' bono 'pbono' aumento 'vsalario*pbono);
else
dbms_output.put_line('empleado 'Pnumemepleado' No tiene bono');
end if;
end;
Para ejecutar el procedimiento se usa
begin
bono2012('SL21',0.03);
end;
crear funciones
para crearla se usa:
create or replace function cuentapropiedades (Pnumemepleado in empleado.numempleado%type)
return number
is
vtotprop numeric;
begin
select count(*) into vtotprop
from propiedad
where numempleado = Pnumemepleado;
return vtotprop;
end;
para ejecutar la funcion usamos:
select cuentapropiedades('SG37') from dual;
otra funcion que suma numeros (no entendi exactamente que es lo que hace)
create or replace function sumadigitos (Pnumero IN integer)
return number
is
suma number:=0;
num_aux number;
begin
num_aux:=Pnumero;
while num_aux>0 loop
suma := suma+mod(num_aux,10);
num_aux:=trunc(num_aux/10);
end loop;
return suma;
end;
para llamarla se usa:
select sumadigitos(125) from dual;
viernes, 6 de enero de 2012
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario