Un curseur est une structure de données d'un langage de requête de base de données relationnelle, 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. L'utilisation consiste à : Déclarer le curseur définissant le jeu d'enregistrement (DECLARE). Ouvrir le curseur pour établir le jeu d'enregistrement (OPEN). Récupérer les données des variables locales (FETCH). Fermer le curseur (CLOSE). Un curseur par défaut traite les données ligne par ligne, mais un curseur scroll 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 (FETCH ABSOLUTE), ou relativement à sa position (FETCH RELATIVE). De plus, un curseur peut être SENSITIVE ou INSENSITIVE si on veut qu'il puisse modifier les enregistrements qu'il contient, ou pas. Enfin, un curseur peut être déclaré WITH HOLD pour éviter qu'il ne soit fermé par une transaction informatique. Par ailleurs, un curseur peut être utilisé dans une clause WHERE avec la syntaxe : UPDATE table1 SET champ1 = 0 WHERE CURRENT OF curseur1 On utilise la fonction subsequence() : let displayedsequence:=subsequence(displayed-sequence := subsequence(result, start,start, item-count) DELIMITER CREATEPROCEDUREcurseur1()BEGINDECLAREresultatvarchar(100)DEFAULT"";DECLAREc1CURSORFORSELECTpagetitleFROMwiki1.wiki1pageWHEREpagenamespace=0;OPENc1;FETCHc1INTOresultat;CLOSEc1;SELECTresultat;END; 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 curse

À propos de ce résultat
Cette page est générée automatiquement et peut contenir des informations qui ne sont pas correctes, complètes, à jour ou pertinentes par rapport à votre recherche. Il en va de même pour toutes les autres pages de ce site. Veillez à vérifier les informations auprès des sources officielles de l'EPFL.
Concepts associés (1)
Base de données
Une base de données permet de stocker et de retrouver des données structurées, semi-structurées ou des données brutes ou de l'information, souvent en rapport avec un thème ou une activité ; celles-ci peuvent être de natures différentes et plus ou moins reliées entre elles. Leurs données peuvent être stockées sous une forme très structurée (base de données relationnelles par exemple), ou bien sous la forme de données brutes peu structurées (avec les bases de données NoSQL par exemple).

Graph Chatbot

Chattez avec Graph Search

Posez n’importe quelle question sur les cours, conférences, exercices, recherches, actualités, etc. de l’EPFL ou essayez les exemples de questions ci-dessous.

AVERTISSEMENT : Le chatbot Graph n'est pas programmé pour fournir des réponses explicites ou catégoriques à vos questions. Il transforme plutôt vos questions en demandes API qui sont distribuées aux différents services informatiques officiellement administrés par l'EPFL. Son but est uniquement de collecter et de recommander des références pertinentes à des contenus que vous pouvez explorer pour vous aider à répondre à vos questions.