Bonjour,
Lors de la révision j'ai trouvé un petit exemple qui utilise le curseur, mais je crois que sa correction contient une erreur qui m'a mené à ne pas bien comprendre l'exemple. Alors peux je avoir de l'aide en me corrigeant l'erreur ou bien me faire comprendre la correction ? et merci d'avance.
La table est :
PRODUIT (Num_Produit, Num_Fournisseur #, Libelle_Produit, Qte_Stock, Stock_Limite)
La question s'etait :
Créer une fonction F_STOCK_LIMITE qui permet de retourner la quantité en stock limite d’un produit dont le numéro est passé en argument. On utilisera obligatoirement un curseur explicite pour extraire la quantité en stock limite du produit.
et la correction s'etait :
CREATE OR REPLACE FUNCTION F_STOCK_LIMITE (A_NUM_PRODUIT IN PRODUIT.NUM_PRODUIT%TYPE)
RETURN NUMBER IS
CURSOR C_STOCK_LIMITE IS
SELECT STOCK_LIMITE FROM PRODUIT
WHERE NUM_PRODUIT=A_NUM_PRODUIT;
BEGIN
FOR V_ STOCK_LIMITE IN C_STOCK_LIMITE
RETURN V_STOCK_LIMITE.STOCK_LIMITE;
END LOOP;
END F_STOCK_LIMITE;
Ce qui me gène, c'est la nouvelle variable "V_stock_limite" (je l'ai mis en gras) qui est utilisée dans le programmme et qui n'est pas déclarée au début. Qu'est ce qu'elle représente ?

Alors à ce que j'ai bien compris, V_STOCK_LIMITE est le curseur courant et chaque fois lorsqu'on retourne V_STOCK_LIMITE.STOCK_LIMITE c'est à dire qu'on retourne la limite du produit de chaque ligne du curseur.
Exactement!!! (en fait curseur courant je suis pas sur que ce soit une bonne denomination, comme je l'ai écrit avant, peut-etre curseur representant l'indice courant du curseur dans la boucle, ou "pointeur" de la ligne courante , serait plus approprié.... mais le principal c'est de comprendre la notion!! ;-))
merci à toi, car j'ai appris un truc plutot interessant pour les curseur ce soir!!!
@+