Conception Et Réalisation (Oracle) by Grare Stéphane - HTML preview

PLEASE NOTE: This is an HTML preview only and some elements such as links or page numbers may be incorrect.
Download the book in PDF, ePub, Kindle for a complete version.

Curseur explicite

Si on utilise une requête devant retourner plus d'une ligne, on doit déclarer un curseur, dit

explicite, auquel on associe cette requête. L'exploitation d'un curseur se fait en trois étapes :

Ouverture, lecture, fermeture.

Déclaration de curseur

La déclaration d'un curseur a pour effet d'associer un nom de variable de type curseur à une

requête SQL. Quand la requête sera exécutée (ouverture du curseur), on pourra accéder aux

lignes du résultat stockées en mémoire par le biais du nom associé (nom du curseur) et

transférer chaque ligne du résultat dans des variables.

On peut associer des paramètres formels à un curseur qui seront référencés dans la clause

WHERE de la requête.

CURSOR nom [(paraml type [,param2 type] ...)]

IS requête

[FOR UPDATE OF nom_col1 [, nom_col2] ... ];

Le type du paramètre peut être : char, number, boolean, date.

CURSOR curart

IS SELECT idarticle, désignation

FROM article;

Déclaration de curseur avec paramètres :

117

CURSOR curart (prixunit number(5,2), qte number)

IS SELECT idarticle, désignation

FROM article

WHERE prixunit > curart.prixunit

AND qtestock < qte ;

On remarque que lorsqu'il peut y avoir confusion de noms (ici prixunit), c'est le paramètre du

curseur qu'il faut préfixer et non pas la colonne de la table.