0% ont trouvé ce document utile (0 vote)
19 vues10 pages

? Qu

Un curseur en PL/SQL permet de parcourir ligne par ligne le résultat d'une requête SELECT, utile lorsque plusieurs lignes doivent être traitées individuellement. Il existe des curseurs implicites, créés automatiquement par Oracle, et des curseurs explicites, que l'on déclare manuellement pour un contrôle accru. Les curseurs ne sont pas nécessaires pour des requêtes retournant une seule ligne ou une valeur simple.

Transféré par

Ghenimi Alaa
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd

Thèmes abordés

  • intégration de données,
  • langage SQL,
  • contrôle des résultats,
  • Oracle Database,
  • traitement ligne par ligne,
  • programmation Oracle,
  • contrôle de flux,
  • analyse de données,
  • parcours de résultats,
  • développement d'applications
0% ont trouvé ce document utile (0 vote)
19 vues10 pages

? Qu

Un curseur en PL/SQL permet de parcourir ligne par ligne le résultat d'une requête SELECT, utile lorsque plusieurs lignes doivent être traitées individuellement. Il existe des curseurs implicites, créés automatiquement par Oracle, et des curseurs explicites, que l'on déclare manuellement pour un contrôle accru. Les curseurs ne sont pas nécessaires pour des requêtes retournant une seule ligne ou une valeur simple.

Transféré par

Ghenimi Alaa
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd

Thèmes abordés

  • intégration de données,
  • langage SQL,
  • contrôle des résultats,
  • Oracle Database,
  • traitement ligne par ligne,
  • programmation Oracle,
  • contrôle de flux,
  • analyse de données,
  • parcours de résultats,
  • développement d'applications

📌 Qu’est-ce qu’un curseur en PL/SQL ?

Un curseur est un mécanisme qui permet de parcourir ligne par ligne le résultat d’un
SELECT dans un programme PL/SQL.

🎯 Pourquoi utilise-t-on un curseur ?


-On utilise un curseur quand une requête retourne plusieurs lignes, et qu’on a besoin de :

-Lire chaque ligne séparément.

-Faire un traitement personnalisé sur chaque ligne (affichage, calcul, insertion,


vérification...).

-Avoir un contrôle précis sur le parcours des résultats.

✅ Quand doit-on utiliser un curseur ?


-Situation Utiliser un curseur ? Pourquoi ?

-La requête retourne plusieurs lignes ✅ Oui Pour les lire une à une.

-Tu dois afficher, traiter ou modifier chaque ligne séparément ✅ Oui Boucle nécessaire.

-Tu veux utiliser %ROWCOUNT, %FOUND, etc. ✅ Oui (curseur explicite) Ces attributs
donnent des infos utiles.
❌ Quand NE PAS utiliser un curseur ?
-Situation Utiliser un curseur ? Pourquoi pas ?

-La requête retourne une seule ligne (ex: SELECT COUNT(*), MAX(...)) ❌ Non SELECT INTO
est suffisant.

-Tu veux juste retourner une valeur simple (ex: nombre, total...) ❌ Non Plus rapide sans
curseur.

-Tu n’as pas besoin de parcourir ligne par ligne ❌ Non Inutile de compliquer le code.

📦 Types de curseurs
-Curseur implicite :

-Quand tu fais FOR i IN (SELECT ...) LOOP → Oracle crée automatiquement un curseur.

Simple à utiliser.

-Curseur explicite :

-Tu déclares le curseur toi-même avec CURSOR nom IS SELECT ...

-Tu peux l’ouvrir, le lire, le fermer manuellement → plus de contrôle.

🧠 Exemple concret
Cas où le curseur est utile :

DECLARE

CURSOR c IS SELECT nom, salaire FROM employes;

BEGIN

FOR i IN c LOOP

dbms_output.put_line(i.nom || ' - ' || i.salaire);

END LOOP;

END;

→ On traite chaque employé individuellement.

Cas où le curseur n’est pas utile :

DECLARE
total NUMBER;

BEGIN

SELECT COUNT(*) INTO total FROM employes;

dbms_output.put_line('Total employés : ' || total);

END;

→ Une seule valeur → pas besoin de curseur.

🎓 Résumé rapide
Cas Curseur ?

Plusieurs lignes à lire/traiter ✅ Oui

Une seule valeur à récupérer ❌ Non

Boucle de traitement ligne par ligne ✅ Oui

Juste une requête simple avec INTO ❌ Non

Vous aimerez peut-être aussi