bonsoir,

j ai creer une procedure d insertion sous sqlplus dans un package et quand je lance ma procedure j ai toujours ce message d erreur :

SQL> execute sport.ajouter_sessions(2,'mardi','kk','kk','kkk','masculin',2,2);
BEGIN sport.ajouter_sessions(2,'mardi','kk','kk','kkk','masculin',2,2); END;

*
ERREUR à la ligne 1 :
ORA-06550: Ligne 1, colonne 7 :
PLS-00306: numéro ou types d'arguments erronés dans appel à 'AJOUTER_SESSIONS'
ORA-06550: Ligne 1, colonne 7 :
PL/SQL: Statement ignored
pourtant quand j essai d inserer ma ligne manuellement cela marche

voila ma procedure pl sql :
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
procedure ajouter_sessions(id_session integer,
jour varchar,
heure_debut varchar,
heure_fin varchar,
lieu varchar,
id_activite integer,
id_professeur integer) is 
 
 
session_dyn varchar(100);
numsession integer;
err_renseign exception;
numsession_existe exception;
 
 
BEGIN
 
 
 
      --On test si il manque des données entrée en paramètre. Si c'est le ca, on appelle une exception qui affichera un message d'erreur--
     IF (id_session IS NULL) or (jour  IS NULL) or (heure_debut  IS NULL)
    or (heure_fin   IS NULL) or (lieu   IS NULL) or (id_activite   IS NULL) or (id_professeur IS NULL) THEN
           RAISE err_renseign;
      END IF;
 
 
 
--On utilise une requête dynamique pour tester si l id_session saisie existe déja dans la table sessions--
      session_dyn:= 'SELECT count(*) FROM sessions WHERE id_session= :p';
      EXECUTE IMMEDIATE session_dyn INTO numsession USING id_session;
 
 
 --Si l identifiant existe déja, on appelle une exception qui signalera le problème--
     IF numsession>0 THEN 
            RAISE numsession_existe;
      END IF;
 
--On utilise une requête dynamique pour insérer les élements dans la table sessions --
     EXECUTE IMMEDIATE 
      'INSERT INTO sessions VALUES (:p1,:p2,:p3,:p4,:p5,:p6,:p7)'
     USING id_session,
      jour  ,
      heure_debut , 
      heure_fin ,
      lieu ,
      id_activite ,
      id_professeur ;
 
 
EXCEPTION 
 
WHEN numsession_existe THEN
         raise_application_error(-20501,'message erreur: l identifiant de la session existe déja- Insertion annuler');
 
 
end;

Merci d avance[/quote]