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 :

TOAD ORACLE : Déclarer variable globale


Sujet :

PL/SQL Oracle

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 13
    Points : 10
    Points
    10
    Par défaut TOAD ORACLE : Déclarer variable globale
    Bonjour,

    Peut être que la question a déjà été posée , mais vraiment je ne trouve pas de solution à mon problème qui est le suivant :

    j'essaie de lancer ce code pour déclarer une variable globale qui sera ensuite utilisée dans deux procédures :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     DECLARE VARIABLE1 varchar2(60);
    BEGIN
    VARIABLE1 := NULL;
    END;
     
    CREATE OR REPLACE PROCEDURE P1 (VARIABLE2 IN VARCHAR) IS
    BEGIN
          VARIABLE1 := VARIABLE2;
    END;
    et j'ai l'erreur suivante :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     PL/SQL procedure successfully completed.
    Warning: compiled but with compilation errors
    je n'arrive pas à voir d'où vient cette erreur :'( je vous remercie par avance et je serai très reconnaissante de votre aide !

  2. #2
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 
    Connected as mni
     
    SQL> 
    SQL> DECLARE VARIABLE1 varchar2(60);
      2  BEGIN
      3  VARIABLE1 := NULL;
      4  END;
      5  /
     
    PL/SQL procedure successfully completed
    SQL> CREATE OR REPLACE PROCEDURE P1 (VARIABLE2 IN VARCHAR) IS
      2  BEGIN
      3        VARIABLE1 := VARIABLE2;
      4  END;
      5  /
     
    Warning: Procedure created with compilation errors
     
    SQL> show err
    Errors for PROCEDURE MNI.P1:
     
    LINE/COL ERROR
    -------- ---------------------------------------------------------
    3/7      PLS-00201: l'identificateur 'VARIABLE1' doit être déclaré
    3/7      PL/SQL: Statement ignored
     
    SQL> 
    Le message d'erreur vous indique que la procédure P1 ne connait rien de la variable VARIABLE1.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 13
    Points : 10
    Points
    10
    Par défaut
    Merci pour ta réponse. Oui justement mais j'arrive pas à déclarer une vavriable globale que je peux utiliser par la suite dans mes procédures

  4. #4
    Membre émérite Avatar de pacmann
    Homme Profil pro
    Consulté Oracle
    Inscrit en
    Juin 2004
    Messages
    1 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consulté Oracle
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 626
    Points : 2 845
    Points
    2 845
    Par défaut
    Salut,

    Utilise une table pour ce paramètre global, tu y accèderas ensuite dans tes packages pour la lire.

    (c'est ma photo)
    Paku, Paku !
    Pour les jeunes incultes : non, je ne suis pas un pokémon...

    Le pacblog : http://pacmann.over-blog.com/

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 13
    Points : 10
    Points
    10
    Par défaut
    Merciii pour ta réponse oui ca peut être une bonne idée , mais j'amerai bien savoir y'a pas moyen de déclarer des variables globales en dehors des procédures sans création de table intermédiaire?

  6. #6
    Membre émérite Avatar de pacmann
    Homme Profil pro
    Consulté Oracle
    Inscrit en
    Juin 2004
    Messages
    1 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consulté Oracle
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 626
    Points : 2 845
    Points
    2 845
    Par défaut
    Si tu restes dans la même session, tu peux éventuellement utiliser un package qui porte la variable :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    SQL dubuisson@QUALIF> CREATE OR REPLACE PACKAGE gvar IS
      2  magvar number;
      3  END;
      4  /
     
    Package created.
     
    SQL dubuisson@QUALIF> exec gvar.magvar := 12;
     
    PL/SQL procedure successfully completed.
     
    SQL dubuisson@QUALIF> BEGIN
      2  dbms_output.enable();
      3  dbms_output.put_line('var value : ' || to_char(gvar.magvar));
      4  END;
      5  /
    var value : 12
     
    PL/SQL procedure successfully completed.
    Sinon, tu peux définir des constantes dans tes packages, qui elle seront visibles de partout... mais c'est sale je pense.

    (c'est ma photo)
    Paku, Paku !
    Pour les jeunes incultes : non, je ne suis pas un pokémon...

    Le pacblog : http://pacmann.over-blog.com/

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 13
    Points : 10
    Points
    10
    Par défaut
    Yeeees je te remercie j'ai pu enfin utilisé ma variable dans la procédure
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    CREATE OR REPLACE PACKAGE gvar IS
        VARIABLE1 char;
        END;
        /
    exec gvar.VARIABLE1 := null;
     
    CREATE OR REPLACE PROCEDURE P1 (VARIABLE2 IN VARCHAR) IS
    BEGIN
          gvar.VARIABLE1 := VARIABLE2;
    END;
    Résultat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Package created.
    PL/SQL procedure successfully completed.
    Procedure created.
    Merciiiiiiiiiiiiiiii infiniment

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

Discussions similaires

  1. [WD17] déclarer variable globale et procedure globale dans une fenetre
    Par java_j2ee dans le forum WinDev
    Réponses: 3
    Dernier message: 14/11/2013, 18h05
  2. Variable Globale sur TOAD ORACLE
    Par codeste dans le forum SQL
    Réponses: 1
    Dernier message: 28/06/2013, 19h00
  3. déclarer variables globales
    Par lanimal37 dans le forum Interfaces Graphiques
    Réponses: 6
    Dernier message: 29/08/2011, 14h18
  4. Déclarer une variable globale
    Par OverLorD34 dans le forum MFC
    Réponses: 8
    Dernier message: 18/03/2006, 10h46

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