Comportement d'une procédure
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:
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 ?