"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo resolver el \"Error 1329: No se obtuvieron, seleccionaron ni procesaron datos\" en los procedimientos almacenados de MySQL?

¿Cómo resolver el \"Error 1329: No se obtuvieron, seleccionaron ni procesaron datos\" en los procedimientos almacenados de MySQL?

Publicado el 2024-11-04
Navegar:366

How to Resolve \

Cómo eliminar el "Error 1329: no se obtuvieron, seleccionaron ni procesaron datos"

Al ejecutar procedimientos almacenados que no devuelven valores, los usuarios pueden encontrar el "Error 1329: No hay datos: cero filas recuperadas, seleccionadas o procesadas". Para solucionar este problema, siga estos pasos:

Considere el siguiente procedimiento almacenado:

CREATE PROCEDURE `testing_proc`()  
    READS SQL DATA  
BEGIN  
    DECLARE done INT DEFAULT 0;
    DECLARE l_name VARCHAR(20);
    DECLARE my_cur CURSOR FOR
        SELECT name FROM customer_tbl;
    OPEN my_cur;
        my_cur_loop:
        LOOP FETCH my_cur INTO l_name;
            IF done = 1 THEN
                LEAVE my_cur_loop;
            END IF;
            INSERT INTO names_tbl VALUES(l_name);
        END LOOP my_cur_loop;
    CLOSE my_cur;
END

El error se debe al comportamiento de MySQL de mostrar una advertencia incluso cuando se ha manejado. Para evitar esto, incluya la siguiente línea al final del procedimiento:

DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;

Como alternativa, agregue una declaración "ficticia" que involucre una tabla y se ejecuta correctamente después del bucle, por ejemplo:

SELECT name INTO l_name FROM customer_tbl LIMIT 1;

Esto borrará la advertencia debido a un error/comportamiento extraño en MySQL (al que se hace referencia en http://dev.mysql.com/doc/refman/5.5/en/show-warnings.html).

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3