100 - Procedimientos almacenados (parámetros de entrada)


Problema:
Una empresa almacena los datos de sus empleados en una tabla llamada "empleados".
1- Eliminamos la tabla, si existe y la creamos:
 drop table if exists empleados;

 create table empleados(
  documento char(8),
  nombre varchar(20),
  apellido varchar(20),
  sueldo decimal(6,2),
  cantidadhijos int,
  seccion varchar(20),
  primary key(documento)
 );

2- Ingrese algunos registros:
 insert into empleados values('22222222','Juan','Perez',300,2,'Contaduria');
 insert into empleados values('22333333','Luis','Lopez',300,0,'Contaduria');
 insert into empleados values ('22444444','Marta','Perez',500,1,'Sistemas');
 insert into empleados values('22555555','Susana','Garcia',400,2,'Secretaria');
 insert into empleados values('22666666','Jose Maria','Morales',400,3,'Secretaria');

3- Elimine el procedimiento llamado "pa_empleados_sueldo" si existe:
 drop procedure if exists pa_empleados_sueldo;

4- Cree un procedimiento almacenado llamado "pa_empleados_sueldo" que seleccione los nombres, 
apellidos y sueldos de los empleados que tengan un sueldo superior o igual al enviado como 
parámetro.
 delimiter //
 create procedure pa_empleados_sueldo(
   in p_sueldo decimal(6,2))
 begin
   select nombre,apellido,sueldo
     from empleados
     where sueldo>=p_sueldo;
 end //
 delimiter ;

5- Ejecute el procedimiento creado anteriormente con distintos valores:
 call pa_empleados_sueldo(400);
 call pa_empleados_sueldo(500);

6- Intente ejecute el procedimiento almacenado "pa_empleados_sueldo" sin parámetros.
Muestra mensaje de error.

7- Elimine el procedimiento almacenado "pa_empleados_actualizar_sueldo" si existe:
 drop procedure pa_empleados_actualizar_sueldo;

8- Cree un procedimiento almacenado llamado "pa_empleados_actualizar_sueldo" que actualice los 
sueldos iguales al enviado como primer parámetro con el valor enviado como segundo parámetro.
 delimiter //
 create procedure pa_empleados_actualizar_sueldo
   (in p_sueldoanterior decimal(6,2),
    in p_sueldonuevo decimal(6,2))
 begin
   update empleados set sueldo=p_sueldonuevo
     where sueldo=p_sueldoanterior;
 end //
 delimiter ;

9- Ejecute el procedimiento creado anteriormente y verifique si se ha ejecutado correctamente:
 call pa_empleados_actualizar_sueldo(300, 350);
 select * from empleados;

10- Ejecute el procedimiento "pa_empleados_actualizar_sueldo" enviando un solo parámetro.
Error.




 


Retornar