Dddddddddddddd

Pages: 4 (751 mots) Publié le: 12 novembre 2012
CURSEUR
Zone de mémoire de taille fixe, utilisée par le noyau d'Oracle pour analyser et interpréter tout ordre SQL. Les statuts d'exécution de l'ordre se trouvent dans le curseur. • curseurimplicite : créé et géré par Oracle à chaque ordre SQL • curseur explicite : créé et géré par l'utilisateur afin de pouvoir traiter un SELECT qui retourne plusieurs lignes

Curseur explicite
L'utilisationd'un curseur explicite nécessite 4 étapes : 1. 2. 3. 4. déclaration du curseur ouverture du curseur traitement des lignes fermeture du curseur

Déclaration d'un curseur
Dans la section DECLARE dubloc avec la syntaxe : CURSOR nom_curseur IS instruction_select ; Exemple : DECLARE CURSOR dpt IS SELECT ename, sal from emp where dptno = 10 ; BEGIN … END ;

Ouverture d'un curseur
Après avoirdéclaré le curseur, il faut l'ouvrir dans la section exécutable (BEGIN) afin de faire exécuter l'ordre SELECT : OPEN nom_curseur ; Conséquences : • allocation mémoire du curseur • analyse del'instruction SELECT • positionnement des verrous éventuels (si SELECT … FOR UPDATE)

Traitement des lignes
Après l'exécution du SELECT, les lignes ramenées sont traitées une par une, la valeur de chaquecolonne du SELECT doit être stockée dans une variable réceptrice. FETCH nom_curseur INTO liste_variables ; FETCH ramène une seule ligne ; pour traiter n lignes, prévoir une boucle

Fermeture ducurseur
Après le traitement des lignes, pour libérer la place mémoire. CLOSE nom_curseur ;

DECLARE CURSOR dpt_10 IS SELECT ename, sal FROM emp WHERE deptno=10 order by sal ; nom emp.ename%TYPE ;salaire emp.sal%TYPE ; BEGIN OPEN dpt_10 ; LOOP FETCH dept_10 INTO nom, salaire ; IF salaire > 2500 THEN insert into resultat values (nom, salaire) ; END IF; EXIT WHEN salaire = 5000 ; END LOOP ; CLOSEdpt_10 ; END;

Attributs d'un curseur
indicateurs sur l'état d'un curseur : %FOUND %NOTFOUND %ISOPEN %ROWCOUNT booléen booléen booléen donnée numérique

• curseur implicite : SQL%… • curseur...
Lire le document complet

Veuillez vous inscrire pour avoir accès au document.

Vous pouvez également trouver ces documents utiles

  • dddddddddddddd
  • Dddddddddddddd

Devenez membre d'Etudier

Inscrivez-vous
c'est gratuit !