27 juillet 2017

Les Cursors SQL

Cela sert à parcourir de manière itérative des données.
Voici la séquence de bouts de code à utiliser :

Etape 1) Les variables des données à manipuler (ici un int et un Varchar(50)
DECLARE @a INT, @b VARCHAR(50);

Etape 2) déclaration du curseur
DECLARE variable_cursor CURSOR FOR 
SELECT  x, y FROM ...
;

  • Adapter le SELECT en fonction des besoins, les colonnes remontées correspondent aux variables de l'étape 1)
  • Le nom de la variable du curseur ne comporte pas de @ !


Etape 3) ouverture du curseur et remplissage des variables
OPEN variable_cursor;
FETCH NEXT FROM variable_cursor INTO @a, @b;

On voit bien ici qu'il faut une adéquation des variables aux colonnes du SELECT !

Etape 4) Boucle tant que c'est pas fini
WHILE (@@FETCH_STATUS <> -1)
BEGIN
  --- Faire ici le traitement utilisant nos variables remplies @a et @b

Etape 5) Fin de boucle
  FETCH NEXT FROM variable_cursor INTO @a, @b;
END

Etape 6) Nettoyage : Très très important : ne pas oublier

CLOSE variable_cursor;
DEALLOCATE variable_cursor;


Enjoy

Aucun commentaire:

Enregistrer un commentaire