Dddddddddddddd

751 mots 4 pages
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. • curseur implicite : 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'utilisation d'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 du bloc 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 avoir dé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 de l'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 chaque colonne 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 du curseur
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 ; CLOSE dpt_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

en relation

  • ddddd
    461 mots | 2 pages
  • dddddd
    1983 mots | 8 pages
  • dgrdhdrhdfh
    665 mots | 3 pages
  • Dddddd
    336 mots | 2 pages
  • dthcdhgffb
    483 mots | 2 pages
  • Dthadfh
    480 mots | 2 pages
  • Fdddddgg
    11401 mots | 46 pages
  • ddddd
    289 mots | 2 pages
  • loldddddddd
    465 mots | 2 pages
  • Ddddddddfdv
    319 mots | 2 pages
  • Dsdffg
    5930 mots | 24 pages
  • Ddddddddddd
    1033 mots | 5 pages
  • Ddddddd
    447 mots | 2 pages
  • Sdddddddddd
    1451 mots | 6 pages
  • Ddfff
    1719 mots | 7 pages