Está en la página 1de 3

1.

Incrementar el salario del empleado ‘120’ con las siguientes condiciones:


- Si la experiencia es más de 25 años aumentar el 30%.
- Si la experiencia es mayor a 15 años aumentar el 10%.
- Caso contrario 10 años el 5%.

declare
experiencia number(2);
incremento number(5,2);
salario employees.salary%type;
begin
select salary into salario
from employees
where employee_id=120;
select floor((sysdate-hire_date)/365) INTO experiencia
from employees
where employee_id=120;
incremento:=1.05;
CASE
WHEN experiencia>25
then
incremento:=1.30;
when experiencia>15
then
incremento:=1.15;
end case;
update employees set salary=salary*incremento
where employee_id=120;
dbms_output.put_line('Salario empleado 120: '||salario);
end;
2.

a) Mostrar la diferencia en los años de ingreso de dos empleados 110 y 120.

declare
ingreso_110 employees.hire_date%type;
ingreso_120 employees.hire_date%type;
diferencia number(2);
begin
select hire_date into ingreso_110
from employees
where employee_id=110;
select hire_date into ingreso_120
from employees
where employee_id=120;
diferencia:=floor((ingreso_110-ingreso_120)/365);
dbms_output.put_line('Fecha ingreso empleado 110: '||ingreso_110 ||' *Fecha ingreso
empleado 120 es: '||ingreso_120 || ' -->Diferencia: '||diferencia);
end

b) Cambiar el porcentaje de comisión para el empleado 150 si:


- El salario>10 000 →comisión: 0.4.
- El salario<10 000 y experiencia>25 → comisión: 0.35
- El salario < 3 000 → comisión:0.15
- Otro caso 0.15

declare
experiencia number(2);
comision employees.commission_pct%type;
salario number(6);
aux number(5,2);
begin
select salary,commission_pct into salario, comision
from employees
where employee_id=150;
select floor((sysdate-hire_date)/365) INTO experiencia
from employees
where employee_id=150;
CASE
WHEN salario>10000
then
aux:=0.40;
when (salario<10000 and experiencia>25)
then
aux:=0.35;
when salario<3000
then
aux:=0.25;
else
aux:=0.15;
end case;
update employees set commission_pct=1*aux
where employee_id=150;
dbms_output.put_line('EMPLEADO 150');
dbms_output.put_line('Salario : '||salario ||' experiencia : '||experiencia||' Comision:
'||aux);
end;

También podría gustarte