PROCEDIMIENTOS ALMACENADOS CON PARAMETROS DE
ENTRADA, SALIDA y VARIABLES LOCALES
1. Crear un procedimiento
almacenado que devuelva en un parámetro de tipo
out, el nombre del representante
de un determinado cliente (código). Debe
utilizar variable(s) local(es).
CREATE DEFINER=`root`@`localhost` PROCEDURE
`Nombre_representante_x_cliente`
(in
pcliente int(11),out pnombre varchar(50))
BEGIN
declare clave int;
select CodigoEmpleadoRepVentas
into clave
from clientes
where CodigoCliente=pcliente;
select Nombre
into pnombre
from empleados
where CodigoEmpleado=clave;
2. Crear un procedimiento
almacenado que devuelva en un parámetro out,
cuantas veces se ha pedido un determinado producto. Para
ello debe
proporcionar el nombre del producto y utilizar variables
locales.
CREATE
DEFINER=`root`@`localhost` PROCEDURE `veces_pedido_un_producto`
(in
pnombre varchar (70),out ptotal int)
BEGIN
Declare
clave varchar (15);
select
CodigoProducto
into
clave
from
productos
where
Nombre=pnombre;
select
count(*)
into
ptotal
from detallepedidos
where CodigoProducto=clave;
END
3. Crear un procedimiento
almacenado que devuelva en un parámetro out, la
descripción de la gama de un determinado producto. Debe
utilizar variables
locales.
CREATE DEFINER=`root`@`localhost` PROCEDURE
`descripcion_gama_x_producto`
(in
pnombre varchar (70),out pdescripcion text)
BEGIN
Declare
clave text;
select
gama
into
clave
from
productos
where nombre=pnombre;
select DescripcionTexto
into pdescripcion
from gamasproductos
where DescripcionTexto=clave;
18:01:55 call
descripcion_gama_x_producto ('Washingtonia Robusta',@total) Error Code: 1172. Result
consisted of more than one row 0.000
sec
4. Crear un procedimiento
almacenado que devuelva en un parámetro out, el
nombre del empleado que es jefe de un determinado empleado
(in).
CREATE DEFINER=`root`@`localhost` PROCEDURE
`jefe_de_empleado`
(in
pcodE int(11), out pcodJ varchar(50))
begin
declare
clave int(11);
select
CodigoEmpleado
into clave
from empleados
where codigoempleado=pcodE;
select Nombre
into pcodJ
from empleados
where CodigoJefe=clave;
5. Crear un procedimiento
almacenado que a partir de un nombre de producto
devuelve en un parámetro de tipo out cuantos
pedidos se han hecho de él
mismo.
CREATE DEFINER=`root`@`localhost` PROCEDURE
`cuantas_piezas_nombre`
(in
pnombre varchar(70), out pcant int(11))
BEGIN
declare
clave varchar(15);
select
CodigoProducto
into
clave
from
productos
where
Nombre=pnombre;
select sum(cantidad)
into
pcant
from detallepedidos
where
CodigoProducto=clave;
call cuantas_piezas_nombre ('Lonicera Pileata',@total);
select
@total;------ '32'--------
6. Crear un procedimiento
almacenado que calcule en un parámetro de tipo out,
para un nombre de cliente, cuánto dinero le queda por
pagar. Para ello debe
sumar el total de sus pedidos y restarle el total de sus
pagos realizados.
7. Crear un procedimiento
almacenado que dado un código de cliente, devuelva
en un parámetro de tipo out la ciudad de la
oficina de su representante.
8. Crear un procedimiento
almacenado que devuelva la lista de clientes que lleva
un determinado representante.