Précédent   Forum des professionnels en informatique > Bases de données > Oracle > PL/SQL
PL/SQL Forum d'entraide sur le PL/SQL
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 17/07/2008, 14h06   #1
Invité de passage
 
Inscription : juin 2008
Messages : 3
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 3
Points : 0
Points : 0
Par défaut Problème ( bloquant ) : " Procedure stockée "

Bonjour , j'ai crée cette procedure , mais je recois comme erreur :Avertissement : Procédure créée avec erreurs de compilation.
alors je ne sais pas exactement pourquoi, j'ai tous mes tables correctes , donc je me trouve pérturbé !

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
SQL> CREATE procedure anas
  2   (
  3      lemat   OUT EMPLOYEE.EMPLOYEE_ID%Type,
  4      ddebut  OUT POINTAGE.POINTAGE_DATE%Type,
  5      dfin   OUT POINTAGE.POINTAGE_DATE%Type;
  6   ) IS
  7      lemat   OUT EMPLOYEE.EMPLOYEE_ID%Type,
  8      ddebut  OUT POINTAGE.POINTAGE_DATE%Type,
  9      dfin   OUT POINTAGE.POINTAGE_DATE%Type;
 10   BEGIN
 11  
 12    SELECT  POINTAGE.POINTAGE_DATE , POINTAGE.POINTAGE_CLOCKIN , POINTAGE.POINTAGE_CLOCKOUT , EMP
LOYEE.EMPLOYEE_NAME , EMPLOYEE.EMPLOYEE_ID
 13    FROM    POINTAGE,EMPLOYEE
 14    WHERE  EMPLOYEE.EMPLOYEE_ID=POINTAGE.EMPLOYEE_ID
 15    AND      EMPLOYEE.EMPLOYEE_ID= lemat  
 16    AND      POINTAGE.POINTAGE_DATE BETWEEN ddebut AND dfin ;
 17  
 18   END;
 19  /
 
Avertissement : Procédure créée avec erreurs de compilation.
moutaki est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/07/2008, 14h16   #2
Membre éclairé
 
Inscription : août 2005
Messages : 316
Détails du profil
Informations personnelles :
Âge : 41

Informations forums :
Inscription : août 2005
Messages : 316
Points : 342
Points : 342
tape show error apres la complilation pour afficher la liste des erreurs
c.langlet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/07/2008, 14h45   #3
Membre confirmé
 
Inscription : janvier 2006
Messages : 178
Détails du profil
Informations personnelles :
Âge : 33

Informations forums :
Inscription : janvier 2006
Messages : 178
Points : 208
Points : 208
Citation:
Envoyé par moutaki Voir le message
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
SQL> CREATE procedure anas
  2   (
  3      lemat   OUT EMPLOYEE.EMPLOYEE_ID%Type,
  4      ddebut  OUT POINTAGE.POINTAGE_DATE%Type,
  5      dfin   OUT POINTAGE.POINTAGE_DATE%Type;
  6   ) IS
  7      lemat   OUT EMPLOYEE.EMPLOYEE_ID%Type,
  8      ddebut  OUT POINTAGE.POINTAGE_DATE%Type,
  9      dfin   OUT POINTAGE.POINTAGE_DATE%Type; 10   BEGIN
 11  
 12    SELECT  POINTAGE.POINTAGE_DATE , POINTAGE.POINTAGE_CLOCKIN , POINTAGE.POINTAGE_CLOCKOUT , EMP
LOYEE.EMPLOYEE_NAME , EMPLOYEE.EMPLOYEE_ID
 13    FROM    POINTAGE,EMPLOYEE
 14    WHERE  EMPLOYEE.EMPLOYEE_ID=POINTAGE.EMPLOYEE_ID
 15    and      EMPLOYEE.EMPLOYEE_ID= lemat  
 16    and      POINTAGE.POINTAGE_DATE between ddebut and dfin ;
 17  
 18   END;
 19  /

Avertissement : Procédure créée avec erreurs de compilation.
Tu as un ";" en trop à la fin des arguments.

Tu as répété inutilement les arguments de la fonction entre "IS" et "BEGIN".

Tu ne peux pas faire un SELECT seul comme ça :

- soit tu récupères un unique enregistrement dans des variables avec un SELECT INTO, ce qui semble semble être ce que tu veux étant donnés les paramètres OUT

Code :
1
2
3
4
5
SELECT col1, 
    col2
INTO var1,
    var2
FROM ...
- soit tu déclares un SYS_REFCURSOR, tu l'ouvres et tu le retournes pour que les résultats soient "fetchés" par l'appelant

Code :
1
2
OPEN rc FOR
    SELECT ...
Et dans tous les cas, utilises effectivement "show errors"
rbaraer est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h29.


 
 
 
 
Partenaires

Hébergement Web