"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment résoudre « Erreur 1329 : aucune donnée récupérée, sélectionnée ou traitée » dans les procédures stockées MySQL ?

Comment résoudre « Erreur 1329 : aucune donnée récupérée, sélectionnée ou traitée » dans les procédures stockées MySQL ?

Publié le 2024-11-04
Parcourir:155

How to Resolve \

Comment éliminer « Erreur 1329 : aucune donnée récupérée, sélectionnée ou traitée »

Lors de l'exécution de procédures stockées qui ne renvoient pas de valeurs, les utilisateurs peuvent rencontrer « Erreur 1329 : Aucune donnée – aucune ligne récupérée, sélectionnée ou traitée ». Pour résoudre ce problème, procédez comme suit :

Considérez la procédure stockée suivante :

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

L'erreur provient du comportement de MySQL consistant à afficher un avertissement même lorsqu'il a été traité. Pour éviter cela, incluez la ligne suivante à la fin de la procédure :

DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;

Vous pouvez également ajouter une instruction "factice" qui implique une table et s'exécute avec succès après la boucle, par exemple :

SELECT name INTO l_name FROM customer_tbl LIMIT 1;

Cela effacera l'avertissement en raison d'un bug/comportement étrange dans MySQL (référencé dans http : //dev.mysql.com/doc/refman/5.5/en/show-warnings.html).

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3