Cordial Saludo, veo este error Error Code: 1325. Cursor is already open
pero no tengo ningun cursor que no se hallan cerrado. ?
Código SQL:
Ver originalUSE almacen3;
DROP PROCEDURE IF EXISTS devuelve_informe_venta;
DROP TABLE IF EXISTS informe;
DELIMITER |
CREATE PROCEDURE devuelve_informe_venta(IN fecha_inicio DATE, IN fecha_final DATE)
BEGIN
DECLARE fecha_factura DATE;
DECLARE codigo_factura INT DEFAULT 0;
DECLARE cod_producto INT DEFAULT 0;
DECLARE costo DOUBLE DEFAULT 0.0;
DECLARE total_registro INT DEFAULT 0;
DECLARE acumulador INT DEFAULT 0;
DECLARE nombre_producto VARCHAR(20);
DECLARE nit INT DEFAULT 0;
DECLARE v_control bool DEFAULT FALSE;
DECLARE crs_cod_fact CURSOR FOR SELECT fact_cod_fac,fact_fecha FROM Factura
WHERE fact_fecha >= fecha_inicio AND fact_fecha <= fecha_final;
DECLARE crs_cod_prod CURSOR FOR SELECT ord_cod_zap,pro_nomb,cal_cost,pro_nit FROM ord_compra oc, Producto p,Calzado c
WHERE ord_cod_fact = codigo_factura;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET v_control = TRUE;
CREATE TABLE informe (num INT(5) AUTO_INCREMENT PRIMARY KEY,fecha DATE,cod_cal INT(10),nomb_cal VARCHAR(20),costo DECIMAL(6,2),nit INT(10))engine=memory;
OPEN crs_cod_fact;
crs_cod_fact_loop:loop
fetch crs_cod_fact INTO codigo_factura,fecha_factura;
IF v_control THEN
leave crs_cod_fact_loop;
close crs_cod_fact;
END IF;
crs_cod_pro_loop:LOOP -- segundo LOOP donde realiza el la busqueda de nombre de productos, codigo y costo.
OPEN crs_cod_prod;
fetch crs_cod_prod INTO cod_producto, nombre_producto,costo,nit;
INSERT INTO informe VALUES('',fecha_factura,cod_producto,nombre_producto,costo,nit);
IF v_control THEN
close crs_cod_prod;
leave crs_cod_pro_loop;
END IF;
END LOOP crs_cod_pro_loop;
END LOOP crs_cod_fact_loop;
-- DROP Table if exists informe;
END;
| delimiter ;
CALL devuelve_informe_venta(20140105,20140105);