Vous êtes sur la page 1sur 16

PL – SQL -LMD

CURSEUR
CURSEUR

DECLARE OPEN FETCH CLOSE

CURS%ISOPEN CURS%FOUND CURS%NOTFOUND CURS%ROWCOUNT


CURSEUR

Utilisation d’un curseur:


Déclaration (DECLARE)
Ouverture (OPEN)
Défilement des données (FETCH)
FERMETURE (CLOSE)
CURSEUR - DÉCLARATION

Syntaxe:
CURSOR <nom_curseur> [(parametre> TYPE := <valeur_par_default>
[,…] IS <requête_SQL>;

Tester:
Déclarer un curseur qui lit la table Bateau.
CURSEUR – OUVERTURE ET FERMETURE

Syntaxe:
OPEN <nom_curseur> [(parametre_entrée> [,…] )];
CLOSE <nom_curseur> ;

Tester:
‐ Déclarer un curseur qui lit la table Bateau.
‐ Ouvrir le curseur.
‐ Tester ouverture avec <nom_curseur> %ISOPEN.
‐ Fermer le curseur.
CURSEUR – LECTURE D’UNE LIGNE

Syntaxe:
FETCH <nom_curseur> {INTO {<nom_variable> | <nom_enregistrement> [,…]}|
BULK COLLECT INTO <variable_enregistrement>};

Tester:
‐ Déclarer un curseur qui lit la table Bateau.
‐ Déclarer une variable du même type que la ligne du curseur.
‐ Ouvrir le curseur.
‐ Lecture du curseur dans la variable ligne.
‐ Afficher le contenu de la ligne
‐ Fermer le curseur.
CURSEUR – LECTURE D’UNE LIGNE AVEC CONDITION

Tester:
‐ Déclarer une variable aléatoire de 1 à 10.
‐ Déclarer un curseur qui lit la table Bateau avec la condition
nobateau=variable_aléatoire.
‐ Déclarer une variable du même type que la ligne du curseur.
‐ Ouvrir le curseur.
‐ Lecture du curseur dans la variable ligne.
‐ Afficher le contenu de la ligne.
‐ Fermer le curseur.
CURSEUR – LECTURE D’UNE LIGNE AVEC GESTION DE LIGNE VIDE

Tester:
‐ Déclarer une variable aléatoire de 1 à 20.
‐ Déclarer un curseur qui lit la table Bateau avec la condition
nobateau=variable_aléatoire.
‐ Déclarer une variable du même type que la ligne du curseur.
‐ Ouvrir le curseur.
‐ Lecture du curseur dans la variable ligne.
‐ Si ligne trouvé: Afficher le contenu de la ligne.
‐ Sinon afficher message d’erreur :
‐ Fermer le curseur.
CURSEUR – LECTURE COMPLÈTE - LOOP

Tester:
‐ Déclarer un curseur qui lit la table Bateau.
‐ Déclarer une variable du même type que la ligne du curseur.
‐ Ouvrir le curseur.
‐ Démarrer une boucle.
‐ Sortir de la boucle si curseur%notfound.
‐ Lecture du curseur dans la variable ligne.
‐ Afficher le contenu de la ligne.
‐ Arrêter la boucle
‐ Fermer le curseur.
CURSEUR – LECTURE COMPLÈTE

Tester avec une sortie mal positionnée:


‐ Déclarer un curseur qui lit la table Bateau.
‐ Déclarer une variable du même type que la ligne du curseur.
‐ Ouvrir le curseur.
‐ Démarrer une boucle.
‐ Sortir de la boucle si curseur%notfound.
‐ Lecture du curseur dans la variable ligne.
‐ Afficher le contenu de la ligne.
‐ Sortir de la boucle si curseur%notfound
‐ Arrêter la boucle
‐ Fermer le curseur.
CURSEUR – LECTURE COMPLÈTE AVEC FOR

Tester avec une boucle FOR


‐ Déclarer une variable i indice for.
‐ Déclarer un curseur qui lit la table Bateau.
‐ Déclarer un type tableau de structure du même type que la ligne tableau.
‐ Déclarer une variable de ce type.
‐ Ouvrir le curseur.
‐ Lecture du curseur dans la variable tableau de structure avec un bulk collect
into.
‐ Démarrer une boucle For de i jusqu’à la taille du curseur.
‐ Afficher le contenu de la ligne.
‐ Fin boucle et Fermeture du curseur.
CURSEUR – OUVERTURE IMPLICITE

Tester avec une boucle FOR


‐ Déclarer un curseur qui lit la table Bateau.
‐ Déclarer une variable du même type qu'une ligne du curseur.
‐ Ouvrir le curseur.
‐ Lecture du curseur dans la variable tableau de structure avec un bulk collect
into.
‐ Alimenter la variable taille tableau.
‐ Démarrer une boucle For (variable ligne IN Curseur).
‐ Afficher le contenu de la ligne.
‐ Fin boucle et Fermeture du curseur.
CURSEUR –PASSAGE DE PARAMÈTRES

Synatxe:
CURSOR <nom_curseur> (variable Type) IS <requête_SQL> where colonne=
variable;

Tester avec une boucle FOR


‐ Déclarer un curseur qui lit la table Port avec le paramètre var_etat et
la clause where etat= var_etat.
‐ Déclarer une variable du même type qu'une ligne du curseur..
‐ Démarrer une boucle For (variable ligne IN Curseur) avec
var_etat=>’US’.
‐ Afficher le contenu de la ligne et Fin boucle.
AUTRE CURSEUR

UPDATE DELETE FETCH CLOSE

CURS%ISOPEN CURS%FOUND CURS%NOTFOUND CURS%ROWCOUNT


CURSEUR – FOR UPDATE

Option:
Permet de verrouillez les enregistrements.
Syntaxe:
CURSOR <nom_curseur> [(parametre> TYPE := <valeur_par_default> [,…] IS
<requête_SQL> FOR UPDATE OF <nom_colonne> [,…]][{NOWAIT |WAIT
<nombre_seconde>}];
MERCI DE
VOTRE
ATTENTION

Vous aimerez peut-être aussi