Blog Alphorm Logo de blog informatique spécialisé en technologie et solutions IT
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
En cours de lecture : Exercices pratiques avec curseurs en PL/SQL
Agrandisseur de policeAa
Blog AlphormBlog Alphorm
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
Search
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
Suivez-nous
© Alphorm 2024 - Tous droits réservés
Bases de donnéesDéveloppement

Exercices pratiques avec curseurs en PL/SQL

L'Équipe Alphorm Par L'Équipe Alphorm 21 novembre 2024
Partager
Partager

Comprendre et manipuler efficacement les ensembles de données en PL/SQL peut être complexe.

Ignorer les fonctionnalités des curseurs peut entraîner une manipulation inefficace des données et des performances réduites.

Cet article propose des exercices pratiques pour explorer les curseurs en PL/SQL, offrant des solutions concrètes aux défis de manipulation des données.

Table de matière
Utiliser un curseur PL/SQL avec boucle FORCurseur avec paramètre : commandes par paysMise à jour PL/SQL : date et état des commandesFAQConclusion

Formation Le langage PL/SQL : Le Guide Complet

Maîtriser le langage SQL en environnement SGBDR. SQL n'aura plus de secrets pour vous !

Découvrir cette formation

Dans cette section, nous allons faire un récapitulatif des points essentiels sur les curseurs en PL/SQL et explorer des exercices pratiques pour consolider ces concepts.

Ce que nous avons étudié

  • Déclaration des curseurs (CURSOR)
  • Ouverture (OPEN) et fermeture (CLOSE) des curseurs
  • Traitement des lignes avec FETCH
  • Attributs de statut des curseurs :%FOUND, %NOTFOUND, %ISOPEN, et %ROWCOUNT
  • Mise à jour des lignes d’un curseur avec FOR UPDATE
  • Curseurs et boucle FOR pour itérer sur chaque enregistrement

Utiliser un curseur PL/SQL avec boucle FOR

Énoncé : Créez un bloc PL/SQL qui permet d’afficher toutes les commandes de la table commandes en utilisant un curseur et une boucle FOR.

				
					
 DECLARE
CURSOR cur_commandes IS SELECT * FROM commandes;
BEGIN
FOR commande IN cur_commandes
LOOP
DBMS_OUTPUT.PUT_LINE('Commande ID : ' || commande.numero_cde || ' - Date : ' || commande.date_cde);
END LOOP;
END;
/

				
			

Explication : Ce code utilise un curseur cur_commandes pour parcourir chaque enregistrement de la table commandes. À chaque itération, la boucle FOR affiche l’ID et la date de chaque commande.

Et voici son résultat lors de son exécution :

Liste de commandes avec dates PL/SQL

Curseur avec paramètre : commandes par pays

Énoncé : Créez un bloc PL/SQL qui permet d’afficher le nombre de commandes par client. Le pays de résidence du client sera passé en paramètre au curseur avec une valeur par défaut. Utilisez une boucle FOR avec votre curseur.

				
					
 DECLARE
CURSOR cur_client_commandes(var_pays clients.pays%TYPE DEFAULT 'France') IS
SELECT numero_cli, COUNT(*) AS total_commandes
FROM commandes
JOIN clients ON commandes.numero_cli = clients.numero_cli
WHERE clients.pays = var_pays
GROUP BY clients.numero_cli;
BEGIN
FOR client_commande IN cur_client_commandes
LOOP
DBMS_OUTPUT.PUT_LINE('Client ID : ' || client_commande.numero_cli || ' - Nombre de commandes : ' || client_commande.total_commandes);
END LOOP;
END;
/

				
			

Explication : Dans cet exercice, le curseur cur_client_commandes accepte un paramètre de pays (var_pays). En utilisant une jointure, il sélectionne les clients par pays et compte leurs commandes, puis affiche le résultat pour chaque client.

Et voici son résultat lors de son exécution :

Liste de commandes par client ID en PL/SQL

Mise à jour PL/SQL : date et état des commandes

Énoncé : Créez un bloc PL/SQL qui met à jour (à l’aide d’un curseur) la date d’envoi des commandes à la date du jour et l’état de la commande à « TRAITEE » pour les commandes dont la date d’envoi est nulle.

				
					
 DECLARE
CURSOR cur_commandes IS
SELECT numero_cde FROM commandes WHERE date_envoi IS NULL FOR UPDATE;
BEGIN
FOR commande IN cur_commandes
LOOP
UPDATE commandes
SET date_envoi = SYSDATE, etat_commande = 'TRAITEE'
WHERE numero_cde = commande.numero_cde;
END LOOP;
COMMIT;
END;
/

				
			

Explication : Ici, le curseur cur_commandes récupère les commandes sans date d’envoi (date_envoi IS NULL). Pour chaque commande, la boucle FOR met à jour la date d’envoi avec la date actuelle et modifie l’état de la commande à « TRAITEE ».

Formez-vous gratuitement avec Alphorm !

Maîtrisez les compétences clés en IT grâce à nos formations gratuites et accélérez votre carrière dès aujourd'hui.

Démarrer gratuitement
illustration processus de paiement en ligne avec étapes claires et convivialité

FAQ

Comment déclarer un curseur en PL/SQL ?
En PL/SQL, un curseur est déclaré dans la section DECLARE d’un bloc PL/SQL. Il permet de récupérer et de manipuler plusieurs lignes de données. Par exemple, ‘CURSOR cur_commandes IS SELECT * FROM commandes;’ déclare un curseur qui sélectionne toutes les commandes. Utiliser des curseurs facilite le traitement des ensembles de résultats ligne par ligne.
Comment utiliser une boucle FOR avec un curseur en PL/SQL ?
Une boucle FOR est utilisée pour itérer sur chaque enregistrement renvoyé par un curseur en PL/SQL. Par exemple, la boucle ‘FOR commande IN cur_commandes LOOP’ parcourt chaque enregistrement du curseur ‘cur_commandes’, permettant d’exécuter des instructions pour chaque ligne. Cela simplifie le traitement des lignes dans une base de données.
Comment passer un paramètre à un curseur en PL/SQL ?
Un curseur en PL/SQL peut accepter des paramètres pour filtrer les résultats. Par exemple, ‘CURSOR cur_client_commandes(var_pays clients.pays%TYPE DEFAULT ‘France’) IS’ accepte un paramètre ‘var_pays’ pour sélectionner les clients d’un pays spécifique. Cela permet de personnaliser les requêtes selon les besoins définis.
Comment mettre à jour les lignes à l'aide d'un curseur en PL/SQL ?
Pour mettre à jour des lignes avec un curseur en PL/SQL, utilisez l’instruction FOR UPDATE. Par exemple, ‘CURSOR cur_commandes IS SELECT numero_cde FROM commandes WHERE date_envoi IS NULL FOR UPDATE;’ permet de verrouiller les lignes et de les mettre à jour en boucle. Les mises à jour sont ensuite validées avec ‘COMMIT’.
Quel est l'objectif des exercices pratiques en PL/SQL ?
Les exercices pratiques en PL/SQL visent à renforcer la compréhension des concepts comme les curseurs et les boucles. Ils permettent aux développeurs d’appliquer les connaissances théoriques dans des scénarios réels, en apprenant à déclarer des curseurs, utiliser des boucles FOR, passer des paramètres et effectuer des mises à jour de données de manière efficace.

Conclusion

En maîtrisant les curseurs PL/SQL, vous pouvez gérer efficacement les ensembles de données. Quels autres aspects de PL/SQL souhaitez-vous explorer pour approfondir vos compétences ?

ÉTIQUETÉ : PL/SQL
Facebook
Twitter
LinkedIn
Email
WhatsApp
Par L'Équipe Alphorm
Démocratiser la Connaissance Informatique pour Tous !
Suivre :
L'Équipe Alphorm, c'est la démocratisation de la connaissance informatique. Passionnés et dévoués, nous sommes là pour vous guider vers le succès en rendant la technologie accessible à tous. Rejoignez notre aventure d'apprentissage et de partage. Avec nous, le savoir IT devient une ressource inspirante et ouverte à tous dans un monde numérique en constante évolution.

Derniers Articles

  • Techniques pour gérer les fichiers texte en C#
  • Créer et lire un fichier CSV avec C#
  • JSON : Comprendre et Utiliser Efficacement
  • Créer une Base SQLite dans C#
  • Lecture des données SQLite simplifiée
Laisser un commentaire Laisser un commentaire

Laisser un commentaire Annuler la réponse

Vous devez vous connecter pour publier un commentaire.

Blog Alphorm
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
En cours de lecture : Exercices pratiques avec curseurs en PL/SQL

© Alphorm - Tous droits réservés