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

Oracle Discussion :

[Oracle 10.2][PL/SQL] Pb déclaration Variables et procédures


Sujet :

Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Bahan
    Inscrit en
    Avril 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Avril 2006
    Messages : 147
    Par défaut [Oracle 10.2][PL/SQL] Pb déclaration Variables et procédures
    Bonjour.

    J'ai un petit soucis lors de la déclaration d'une procédure à l'intérieur d'un bloc declare :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    DECLARE
           PROCEDURE P_Echo
             (pVar NUMBER)
           IS
           BEGIN
                DBMS_OUTPUT.put_line(pVar||' hello world');
           END P_Echo;    
     
           vVar NUMBER;
    BEGIN
         vVar := 1;
         P_Echo(vVar);
    END;
    /
    Dans ce sens là, il me met l'erreur suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ORA-06550: line 9, column 8:
    PLS-00103: Encountered the symbol "VVAR" when expecting one of the following:
     
     begin function package pragma procedure form
    Si je déclare ma variable vVar avant la procédure, ça compile bien, autrement dit, le code suivant fonctionne bien.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    DECLARE
           vVar NUMBER;
     
           PROCEDURE P_Echo
             (pVar NUMBER)
           IS
           BEGIN
                DBMS_OUTPUT.put_line(pVar||' hello world');
           END P_Echo;    
    BEGIN
         vVar := 1;
         P_Echo(vVar);
    END;
    /
    Mais je ne comprends pas vraiment pourquoi.

    Aussi je me demandai si quelqu'un pouvait m'expliquer pourquoi je ne peux pas déclarer de variables après avoir déclaré de procédures dans un bloc declare.

    Je n'avais encore jamais fait ça car je ne trouvais pas très propre de déclarer une procédure dans un bloc DECLARE. Cependant, cela évite de créer un objet dans la BDD. Comme le script que je veux écrire ne doit pas tourner souvent, je me dis qu'il est inutile de créer un objet PROCEDURE pour ça.

    Merci d'avance.

    Cdt.

    Bahan

  2. #2
    Membre Expert Avatar de Garuda
    Homme Profil pro
    Chef de projet / Urbaniste SI
    Inscrit en
    Juin 2007
    Messages
    1 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet / Urbaniste SI
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 285
    Par défaut
    Est-ce une question vraiment essentielle ?

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 10/09/2014, 17h41
  2. Réponses: 2
    Dernier message: 04/09/2006, 18h07
  3. ORACLE / DEVELOPPEMENT WEB / FENETRE SQL
    Par mimi_été dans le forum Oracle
    Réponses: 4
    Dernier message: 15/02/2005, 18h50
  4. script SQL : affectation de variables
    Par Laura dans le forum Requêtes
    Réponses: 3
    Dernier message: 28/10/2003, 21h32
  5. Transact Sql : Conversion de variable
    Par lord_paco dans le forum Langage SQL
    Réponses: 2
    Dernier message: 13/08/2003, 13h25

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