Précédent   Forum des professionnels en informatique > Bases de données > Oracle
Oracle Forum Oracle : le serveur, les outils, ... Voir F.A.Q Oracle Tutoriels Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 30/07/2007, 14h08   #1
Membre du Club
 
Avatar de Bahan
 
Inscription : avril 2006
Messages : 147
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : avril 2006
Messages : 147
Points : 54
Points : 54
Envoyer un message via MSN à Bahan
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 :
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 :
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 :
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
Bahan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/07/2007, 14h10   #2
Membre Expert
 
Avatar de Garuda
 
Homme Philippe CHIRCOP
Chef de projet
Inscription : juin 2007
Messages : 1 109
Détails du profil
Informations personnelles :
Nom : Homme Philippe CHIRCOP
Localisation : France

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

Informations forums :
Inscription : juin 2007
Messages : 1 109
Points : 1 559
Points : 1 559
Est-ce une question vraiment essentielle ?
__________________
Garuda गरूड
Brahmâ la Guerre et Vishnu la Paix

Oracle 10.2.0.4 - Forms6i patch 17 - Toad 11.1 - sharePoint 2010
Garuda est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h12.


 
 
 
 
Partenaires

Hébergement Web