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.

Curseurs

Un curseur est une zone de contexte en mémoire, ouverte par Oracle pour exécuter une

requête et stocker les résultats. Il existe 2 sortes de curseurs : Implicites et explicites.

C’est une variable dynamique qui prend pour valeur le résultat d’une requête.

Exemple : Afficher la liste des produits (codart, libart, stkphy) pour lesquels le stkphy est

supérieur à un stock donné. Le stock donné sera saisi en dur dans une variable du

programme. On utilisera :

Ø Des variables

Ø Des curseurs paramétrés

Ø %NOTFOUND, %ROWTYPE

Ø dbms_output.put_line()

------------------------------

-- Avec Rowtype sur Curseur --

------------------------------

set serveroutput on;

declare

w_stock number;

cursor c_stock (stock number) is

select codart,libart,stkphy

from produit

where stkphy>w_stock;

r_stock c_stock%rowtype;

begin

w_stock := 500;

open c_stock(w_stock);

dbms_output.put_line('Test : Nombre de lignes traitées = ' ||

c_stock%rowcount);

loop

116

fetch c_stock into r_stock;

exit when c_stock%notfound;

dbms_output.put_line(c_stock%rowcount || ' - '

|| r_stock.codart || ' - '

|| r_stock.libart || ' - '

|| r_stock.stkphy);

end loop;

dbms_output.put_line('Test : Nombre de lignes traitées = ' ||

c_stock%rowcount);

close c_stock;

end;