Bonjour,

Je souhaite donc créer une procédure qui me permettra d'affecter un rôle (genre administrateur) à un utilisateur.

D'une manière générale, ma procédure se comporterait comme cela :
-le premier select correspond à un test si l'utilisateur et le rôle existe, et mon parm me permettra de dire si oui ou non ce rôle est affecté et/ou pouvoir le désactiver,
-les selects du CASE correspondent à un test de ma table où je veux faire l'insert ou update s'il y a présence ou non de l'utilisateur et du rôle dans d'autres tables.

Dans le cas de mon premier CASE, s'il n'y a aucun enregistrement, il devrait faire l'insert mais ne le fait pas.
Pourtant, ces selects isolés me retournent bien ce que je souhaite.

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
 
CREATE OR REPLACE PROCEDURE procedure_name(...parm type...)
--variables--
var...
BEGIN
SELECT...
CASE WHEN parm=1 THEN
         SELECT...INTO var
          IF var = 1 THEN
            raise...
          ELSEIF var=0 THEN
            update...
          ELSE                          <----pbs à ce niveau
            insert
        END IF;
        WHEN parm=0 THEN
         SELECT...INTO var
          IF var=0 THEN
          raise...
          ELSE
          update...
         END IF;
END CASE;
END;
Est-ce-qu'au niveau de la structuration, cela vous paraît correcte ?