92 - Procedimientos Almacenados (crear- ejecutar) |
Una empresa almacena los datos de sus empleados en una tabla llamada "empleados".
1- Eliminamos la tabla y la creamos:
drop table empleados; create table empleados( documento char(8), nombre varchar2(20), apellido varchar2(20), sueldo number(6,2), cantidadhijos number(2,0), fechaingreso date, primary key(documento) );
2- Ingrese algunos registros:
insert into empleados values('22222222','Juan','Perez',200,2,'10/10/1980');
insert into empleados values('22333333','Luis','Lopez',250,0,'01/02/1990');
insert into empleados values('22444444','Marta','Perez',350,1,'02/05/1995');
insert into empleados values('22555555','Susana','Garcia',400,2,'15/12/2018');
insert into empleados values('22666666','Jose Maria','Morales',500,3,'25/08/2015');
3- Cree (o reemplace) el procedimiento almacenado llamado "pa_aumentarsueldo" que aumente los sueldos inferiores al promedio en un 20%
4- Ejecute el procedimiento creado anteriormente
5- Verifique que los sueldos han aumentado
6- Ejecute el procedimiento nuevamente
7- Verifique que los sueldos han aumentado
8- Elimine la tabla "empleados_antiguos"
9- Cree la tabla "empleados_antiguos"
create table empleados_antiguos( documento char(8), nombre varchar2(40) );
10- Cree (o reemplace) un procedimiento almacenado que ingrese en la tabla "empleados_antiguos" el documento, nombre y apellido (concatenados) de todos los empleados de la tabla "empleados" que ingresaron a la empresa hace más de 10 años
11- Ejecute el procedimiento creado anteriormente
12- Verifique que la tabla "empleados_antiguos" ahora tiene registros (3 registros)
Ver solución
drop table empleados;
create table empleados(
documento char(8),
nombre varchar2(20),
apellido varchar2(20),
sueldo number(6,2),
cantidadhijos number(2,0),
fechaingreso date,
primary key(documento)
);
insert into empleados values('22222222','Juan','Perez',200,2,'10/10/1980');
insert into empleados values('22333333','Luis','Lopez',250,0,'01/02/1990');
insert into empleados values('22444444','Marta','Perez',350,1,'02/05/1995');
insert into empleados values('22555555','Susana','Garcia',400,2,'15/12/2000');
insert into empleados values('22666666','Jose Maria','Morales',500,3,'25/08/2005');
create or replace procedure pa_aumentarsueldo
as
begin
update empleados set sueldo=sueldo+(sueldo*0.2)
where sueldo<(select max(sueldo) from empleados);
end;
/
exec pa_aumentarsueldo;
select *from empleados;
exec pa_aumentarsueldo;
select *from empleados;
drop table empleados_antiguos;
create table empleados_antiguos(
documento char(8),
nombre varchar2(40)
);
create or replace procedure pa_empleados_antiguos
as
begin
insert into empleados_antiguos
select documento,nombre||' '||apellido
from empleados
where (extract(year from current_date)-extract(year from fechaingreso))>10;
end;
/
execute pa_empleados_antiguos;
select * from empleados_antiguos;