Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

Sobre la tabla "tabla_de_clientes"

En mi caso no la tenia cargada asi que tuve que descargarla del archivo "Carga_Tablas_Registros.sql", crear la tabla primero..

CREATE TABLE tabla_de_clientes (
DNI VARCHAR(20) PRIMARY KEY,
NOMBRE VARCHAR(80),
DIRECCION_1 VARCHAR(255),
DIRECCION_2 VARCHAR(255),
BARRIO VARCHAR(100),
CIUDAD VARCHAR(100),
ESTADO VARCHAR(100),
CP VARCHAR(10),
FECHA_NACIMIENTO DATE,
EDAD INT,
SEXO CHAR(1),
LIMITE_CREDITO DECIMAL(10,2),
VOLUMEN_COMPRA DECIMAL(10,2),
PRIMERA_COMPRA TINYINT(1));

Ejercicio:

CREATE DEFINER=`root`@`localhost` PROCEDURE `cursor_looping_varios_campos`()
BEGIN
DECLARE fin_c INT DEFAULT 0;
DECLARE vbarrio, vciudad, vestado, vcp VARCHAR(50);
DECLARE vnombre, vdireccion VARCHAR(150);
DECLARE c CURSOR FOR SELECT NOMBRE, DIRECCION_1, BARRIO, CIUDAD, ESTADO, CP FROM tabla_de_clientes;
DECLARE CONTINUE HANDLER FOR NOT FOUND
SET fin_c = 1;
OPEN c;
WHILE fin_c = 0
DO
FETCH c INTO vnombre, vdireccion, vbarrio, vciudad, vestado, vcp;
IF fin_c = 0
THEN SELECT CONCAT(vnombre, ' Dirección: ', vdireccion,
' Barrio: ', vbarrio, ' Ciudad: ', vciudad, ' CP: ', vcp, ' Estado: '  , vestado) AS RESULTADO_BUSQUEDA;
END IF; 
END WHILE;
CLOSE c;
END
CALL cursor_looping_varios_campos;

Imagen Workbench

1 respuesta

¡Hola Christian!

Entiendo que estás teniendo problemas con la creación de un procedimiento almacenado que utilice un cursor para acceder a varios campos de la tabla "tabla_de_clientes" en MySQL. Afortunadamente, puedo ayudarte con eso.

El procedimiento almacenado que has compartido parece estar bien estructurado. Sin embargo, parece que estás teniendo problemas al ejecutarlo. Una posible solución podría ser ajustar la forma en que estás llamando al procedimiento almacenado. Asegúrate de que estás utilizando la base de datos correcta antes de llamar al procedimiento. Por ejemplo, si tu base de datos se llama "mi_base_de_datos", deberías ejecutar el comando "USE mi_base_de_datos;" antes de llamar al procedimiento "cursor_looping_varios_campos".

Además, es importante verificar que la tabla "tabla_de_clientes" esté correctamente cargada con datos antes de llamar al procedimiento almacenado. De lo contrario, el cursor no encontrará registros y el procedimiento no devolverá ningún resultado.

Espero que estas sugerencias te ayuden a resolver tu problema. Si necesitas más ayuda, no dudes en preguntar.

¡Espero haber ayudado y buenos estudios!

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios!