Está en la página 1de 3

-----------------------------------------------------------------------------------

-----------------------1
DECLARE
-- Declarar un cursor para recorrer los clientes en Espa�a
CURSOR clientes_espana IS
SELECT nombrecliente, telefono, ciudad
FROM cliente
WHERE pais = 'Espa�a';

-- Declarar variables para almacenar los datos de cada cliente


v_nombre cliente.nombrecliente%TYPE;
v_telefono cliente.telefono%TYPE;
v_ciudad cliente.ciudad%TYPE;
BEGIN
-- Recorrer el cursor y mostrar los datos de cada cliente
FOR cliente IN clientes_espana LOOP
v_nombre := cliente.nombrecliente;
v_telefono := cliente.telefono;
v_ciudad := cliente.ciudad;

DBMS_OUTPUT.PUT_LINE('Nombre: ' || v_nombre || ', Telefono: ' || v_telefono


|| ', Ciudad: ' || v_ciudad);
END LOOP;
END;

-----------------------------------------------------------------------------------
----------------------2

DECLARE
-- Declarar una variable para almacenar el precio introducido por el usuario
v_precio NUMBER;

-- Declarar un cursor para recorrer los productos con un precio menor al


introducido
CURSOR productos_cursor IS
SELECT nombre, precio_venta, dimensiones
FROM producto
WHERE precio_venta < v_precio;

-- Declarar variables para almacenar los datos de cada producto


v_nombre producto.nombre%TYPE;
v_precio_venta producto.precio_venta%TYPE;
v_dimensiones producto.dimensiones%TYPE;
BEGIN
-- Solicitar al usuario el precio a buscar
DBMS_OUTPUT.PUT_LINE('Introduzca un precio para buscar productos:');
v_precio := &precio;

-- Recorrer el cursor y mostrar los datos de cada producto


FOR producto IN productos_cursor LOOP
v_nombre := producto.nombre;
v_precio_venta := producto.precio_venta;
v_dimensiones := producto.dimensiones;

DBMS_OUTPUT.PUT_LINE('Nombre del producto: ' || v_nombre || ', Precio de venta:


' || v_precio_venta || ', Dimensiones: ' || v_dimensiones);
END LOOP;
END;
-----------------------------------------------------------------------------------
---------------------------3
DECLARE
CURSOR tiendas_cursor IS
SELECT codtienda, ciudad, pais FROM tienda;
v_pais tienda.pais%TYPE;
v_ciudad tienda.ciudad%TYPE;
v_codtienda tienda.codtienda%TYPE;
v_numempleados INTEGER;
BEGIN
FOR tienda_rec IN tiendas_cursor LOOP
SELECT COUNT(*) INTO v_numempleados FROM empleado WHERE codtienda =
tienda_rec.codtienda;
v_pais := tienda_rec.pais;
v_ciudad := tienda_rec.ciudad;
v_codtienda := tienda_rec.codtienda;
DBMS_OUTPUT.PUT_LINE('Pa�s: ' || v_pais || ', Ciudad: ' || v_ciudad || ',
C�digo de Tienda: ' || v_codtienda || ', N�mero de Empleados: ' || v_numempleados);
END LOOP;
END;

-----------------------------------------------------------------------------------
----------------------4

DECLARE
v_cadena VARCHAR2(100);
v_contador INTEGER := 0;
CURSOR c_empleados IS
SELECT CODEMPLEADO, APELLIDO1
FROM empleado
WHERE UPPER(APELLIDO1) LIKE '%' || UPPER(v_cadena) || '%';
BEGIN
-- Solicitar la cadena a buscar
v_cadena := '&Ingrese cadena a buscar: ';

-- Mostrar los empleados que coinciden con la cadena


FOR empleado IN c_empleados
LOOP
dbms_output.put_line('C�digo Empleado: ' || empleado.CODEMPLEADO || '
Apellido: ' || empleado.APELLIDO1);
v_contador := v_contador + 1;
END LOOP;

-- Mostrar el n�mero de empleados encontrados


dbms_output.put_line('N�mero de empleados mostrados: ' || v_contador);
END;

-----------------------------------------------------------------------------------
---------------------------------5

DECLARE
v_codcliente cliente.codcliente%TYPE;
v_codpedido pedido.codpedido%TYPE;
v_fechaentrega pedido.fechaentrega%TYPE;
v_fechaprevista pedido.fechaprevista%TYPE;
v_estado pedido.estado%TYPE;
v_comentarios pedido.comentarios%TYPE;
CURSOR c_pedidos_cliente IS
SELECT p.codpedido, p.estado, p.fechaprevista, p.fechaentrega, p.comentarios
FROM pedido p
WHERE p.codcliente = v_codcliente;
BEGIN
-- Solicitar al usuario el c�digo del cliente
v_codcliente := &codCliente;

-- Recorrer los pedidos del cliente


FOR pedido_cliente IN c_pedidos_cliente LOOP
v_codpedido := pedido_cliente.codpedido;
v_estado := pedido_cliente.estado;
v_fechaprevista := pedido_cliente.fechaprevista;
v_fechaentrega := pedido_cliente.fechaentrega;
v_comentarios := pedido_cliente.comentarios;

-- Mostrar la informaci�n seg�n el estado del pedido


IF v_estado = 'Entregado' THEN
dbms_output.put_line('Cliente: ' || v_codcliente || ', Pedido: ' ||
v_codpedido || ' - Entregado en fecha: ' || v_fechaentrega);
ELSIF v_estado = 'Pendiente' THEN
dbms_output.put_line('Cliente: ' || v_codcliente || ', Pedido: ' ||
v_codpedido || ' - Entrega prevista en fecha: ' || v_fechaprevista);
ELSIF v_estado = 'Rechazado' THEN
dbms_output.put_line('Cliente: ' || v_codcliente || ', Pedido: ' ||
v_codpedido || ' - Comentarios: ' || v_comentarios);
END IF;
END LOOP;
END;

-----------------------------------------------------------------------------------
----------------------------------6

También podría gustarte