Syntaxe
Déclaration du curseur
Comme toutes les instructions DECLARE, la déclaration d'un curseur doit se faire au début du bloc d'instructions pour lequel
celui-ci est défini. Plus précisément, on déclare les curseurs après les variables locales et les conditions, mais avant les
gestionnaires d'erreur.
Code : SQL
DECLARE nom_curseur CURSOR FOR requete_select;
Un curseur est donc composé d'un nom, et d'une requête SELECT.
Exemple :
Code : SQL
DECLARE curseur_client CURSOR
FOR SELECT *
FROM Client;
Ouverture et fermeture du curseur
En déclarant le curseur, on a donc associé un nom et une requête SELECT. L'ouverture du curseur va provoquer l'exécution de la
requête SELECT, ce qui va produire un jeu de résultats.
Une fois qu'on aura parcouru les résultats, il n'y aura plus qu'à fermer le curseur. Si on ne le fait pas explicitement, le curseur sera
fermé à la fin du bloc d'instructions.
Code : SQL
OPEN nom_curseur;
-- Parcours du curseur et instructions diverses
CLOSE nom_curseur;
Parcours du curseur
Une fois que le curseur a été ouvert et le jeu de résultats récupéré, le curseur place un pointeur sur la première ligne de résultats.
Avec la commande FETCH, on récupère la ligne sur laquelle pointe le curseur, et on fait avancer le pointeur vers la ligne de
résultats suivante.
Code : SQL
FETCH nom_curseur INTO variable(s);
Bien entendu, comme pour SELECT ... INTO, il faut donner autant de variables dans la clause INTO qu'on a récupéré de
colonnes dans la clause SELECT du curseur.
Exemple : la procédure suivante parcourt les deux premières lignes de la table Client avec un curseur.
Code : SQL
Partie 5 : Sécuriser et automatiser ses actions
301/414
www.openclassrooms.com
Précédent

- 301/413

Suivant