De nombreux développeurs rencontrent le frustrant « Erreur 1329 : aucune donnée – aucune ligne récupérée, sélectionnée ou traitée » lorsque exécuter des procédures stockées. Cependant, cette erreur se produit souvent même lorsque la procédure fonctionne correctement, ce qui soulève la question de savoir comment supprimer ce message inutile.
Une solution potentielle réside dans la procédure stockée elle-même. Par défaut, les procédures stockées sont censées renvoyer un jeu de résultats. Cependant, si la procédure effectue des opérations qui ne génèrent aucune donnée (telles que la manipulation de données ou la mise à jour d'enregistrements), elle déclenchera le message d'erreur.
Pour résoudre ce problème, nous pouvons modifier la procédure stockée pour indiquer explicitement que il ne renvoie aucune donnée. Ceci peut être réalisé en ajoutant la ligne suivante au début de la procédure :
READS SQL DATA
Cette ligne informe la base de données que la procédure ne lira que les tables et ne le fera pas. renvoie toutes les lignes.
Une autre approche consiste à gérer l'exception NOT FOUND dans la procédure. Lorsqu'un curseur est utilisé pour extraire des lignes d'une table, il peut rencontrer un scénario dans lequel il n'y a plus de lignes à extraire. Cela entraînera le curseur à lever une exception NOT FOUND. En capturant cette exception et en définissant un indicateur, nous pouvons éviter le message d'erreur.
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
En ajoutant cette ligne, nous instruisons le base de données pour définir l'indicateur terminé sur 1 lorsque le curseur rencontre l'exception NOT FOUND. Cet indicateur peut ensuite être utilisé pour quitter la boucle du curseur et terminer la procédure sans déclencher le message d'erreur.
Enfin, une autre solution de contournement consiste à exécuter une requête factice supplémentaire qui lit à partir d'une table et réussit. Cela effacera l'avertissement sur MySQL 5.5.13.
SELECT name INTO l_name FROM customer_tbl LIMIT 1;
En suivant ces approches, les développeurs peuvent supprimer le message "Erreur 1329" pour procédures stockées qui ne renvoient aucune donnée, garantissant une exécution plus fluide sans invites d'erreur inutiles.
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