IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PL/SQL Oracle Discussion :

Une variable utilisée dans la fonction et non déclarée ?


Sujet :

PL/SQL Oracle

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 45
    Points : 40
    Points
    40
    Par défaut Une variable utilisée dans la fonction et non déclarée ?
    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 (je l'ai coloré en rouge) 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 ?

  2. #2
    Expert éminent
    Avatar de pachot
    Homme Profil pro
    Developer Advocate YugabyteDB
    Inscrit en
    Novembre 2007
    Messages
    1 821
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Developer Advocate YugabyteDB
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 821
    Points : 6 443
    Points
    6 443
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    C'est un cas où la variable n'a pas à être déclarée:
    FOR V_ STOCK_LIMITE IN C_STOCK_LIMITE
    v_stock_limite est un record du résultat du curseur, et donc V_STOCK_LIMITE.STOCK_LIMITE est la valeur de la colonne stock_limite de l'enregistrement.
    Cordialement,
    Franck.
    Franck Pachot - Developer Advocate Yugabyte 🚀 Base de Données distribuée, open source, compatible PostgreSQL
    🗣 twitter: @FranckPachot - 📝 blog: blog.pachot.net - 🎧 podcast en français : https://anchor.fm/franckpachot

  3. #3
    Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 45
    Points : 40
    Points
    40
    Par défaut
    L'idée est bien claire, merci Frank

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. une variable utilisée dans plusieurs modules
    Par kekule10 dans le forum Général Python
    Réponses: 0
    Dernier message: 22/07/2014, 01h01
  2. Réponses: 1
    Dernier message: 28/03/2011, 13h00
  3. Réponses: 1
    Dernier message: 12/04/2009, 17h54
  4. Appeler une variable globale dans la fonction eval
    Par Romanops dans le forum Langage
    Réponses: 2
    Dernier message: 03/08/2007, 04h24
  5. Réponses: 7
    Dernier message: 24/01/2007, 10h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo