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 24/12/2010, 03h59   #1
Invité régulier
 
Inscription : mai 2008
Messages : 45
Détails du profil
Informations personnelles :
Âge : 23

Informations forums :
Inscription : mai 2008
Messages : 45
Points : 9
Points : 9
Par défaut Parenthèse dans une procedure

J'ai un problème bizarre avec une procedure ,

Code :
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
31
32
33
34
35
36
37
38
39
-- Creation de la procedure Proc_ManageThematique
 
CREATE OR REPLACE PROCEDURE proc_managethematique
(
    type_manage		VARCHAR2(1)
  , n_no		t_thematique.no%TYPE 
  , v_nom		t_thematique.nom%TYPE
  , n_statut		t_thematique.status%TYPE
) IS
 
BEGIN
	CASE type_manage
	-- En cas d'ajout
		WHEN 'A' THEN
			INSERT INTO 
				t_thematique
			VALUES
				(n_no, v_nom, n_statut) ;
	-- En cas de modification
		WHEN 'M' THEN
			UPDATE 
				t_thematique
			SET
				nom = v_nom
			WHERE	
				no = n_no ;
	-- En cas de desactivation
		WHEN 'D' THEN
			UPDATE
				t_thematique
			SET
				STATUS = 0
			WHERE
				no = n_no ;
		ELSE
			NULL ;
	END CASE ;
END ;
/
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@ proc_managethematique
 
Warning: Procedure created WITH compilation errors.
 
SQL> SHOW errors ;
Errors FOR PROCEDURE PROC_MANAGETHEMATIQUE:
 
LINE/COL
--------------------------------------------------------------------------------
ERROR
--------------------------------------------------------------------------------
3/26
PLS-00103: Encountered the symbol "(" when expecting one of the following:
 
   := . ) , @ % DEFAULT character
The symbol ":=" was substituted FOR "(" TO continue.

Quand je replace varchar2(1) par varchar2 ça marche sans erreurs, qu'est ce que se passe ?
Elaich est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/12/2010, 09h18   #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
bonjour,
il me semble que pour déclarer les parametres d'une procedure , il faut juste
le type (varchar2 dans ce cas) et pas la "taille" du type.
c.langlet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/12/2010, 10h49   #3
 
Inscription : décembre 2010
Messages : 4
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 4
Points : -1
Points : -1
Citation:
Envoyé par c.langlet Voir le message
type_manage VARCHAR2(1)
, n_no t_thematique.no%TYPE
, v_nom t_thematique.nom%TYPE
, n_statut t_thematique.status%TYPE.
je pense que tu dois pas mettre (1) dans cet emplacement juste tu mets varchar2
landouch 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 11h06.


 
 
 
 
Partenaires

Hébergement Web