Curseur (base de données)Un curseur est une structure de données d'un langage de requête de base de données relationnelle[1], consistant en un pointeur de données permettant d'effectuer des calculs de variables à travers plusieurs enregistrements. Il introduit un itérateur, qui peut effectuer des opérations, par exemple : ne traiter qu'une ligne sur deux lors de son parcours. PrincipeL'utilisation consiste à :
Un curseur par défaut traite les données ligne par ligne, mais un curseur scroll[2] n'est pas limité et peut tenir compte des lignes précédentes. En effet ce dernier peut faire appel à des données de façon absolue, à partir du début des enregistrements ( De plus, un curseur peut être Enfin, un curseur peut être déclaré Par ailleurs, un curseur peut être utilisé dans une clause UPDATE table1
SET champ1 = 0
WHERE CURRENT OF curseur1
ExemplesOn utilise la fonction let $displayed-sequence := subsequence($result, $start, $item-count) DELIMITER $$
CREATE PROCEDURE curseur1()
BEGIN
DECLARE resultat varchar(100) DEFAULT "";
DECLARE c1 CURSOR FOR
SELECT page_title
FROM wiki1.wiki1_page
WHERE page_namespace = 0;
OPEN c1;
FETCH c1 INTO resultat;
CLOSE c1;
SELECT resultat;
END;$$
DELIMITER ;
USE Base1
declare @Nom varchar(20)
DECLARE curseur1 CURSOR FOR SELECT Prenom FROM Table1
OPEN curseur1
/* Premier enregistrement de la sélection */
FETCH NEXT FROM curseur1 into @Nom
print 'Salut ' + @Nom
/* Traitement de tous les autres enregistrements dans une boucle */
while @@FETCH_STATUS = 0
begin
FETCH NEXT FROM curseur1 into @Nom
print 'Salut ' + @Nom
end
CLOSE curseur1;
DEALLOCATE curseur1;
Notes et références
Voir aussi |