bonjour, je me permet de faire appel a vous pour l'ecriture d'une procedure stockée.


comme d habitude je m'attaque a un truc enorme pour commencé... et j avoue que je ne sais pas trop comment debuté, j ai lu attentivement les cours sur les procédure, j ai l'impression d'etre avec un cas qui n'est pas d ecole.

en 2 mots voici le contexte :



j ai un dossier qui changer d etat celon s'il est utilisé (ou pas) il a plusieurs status qui dependent du status des objets qui l'utilisent.


voici donc l algo :



declaration de 2 arguments
libelle et tome

select count (*) from table_utilisation
where lib = @libelle
and tome =@tome

si le resultat de la requete est 0 alors je change le statue de mon dossier

si le resultat est >1 alors je fait mon test 2

test 2 est un select count et je fait pareil ... 7 fois avec des criteres differents


donc !!! si je ne m abuse mon code devrait ressembler a ceci :

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
 
 
 CREATE OR REPLACE PROCEDURE calcul 
(p_libelle VARCHAR2, p_tome VARCHAR2, p_user VARCHAR2)
IS
    BEGIN
IF   ( select count (*) from table_utilisation
       where lib = @p_libelle
       and tome =@p_tome) = 0 
THEN 
 
UPDATE DOSSIER_MODIF
SET OP_DATE_MAJ= SYSDATE, 
OP_MODI=@p_user,
DM_ETAT='Créé'
where 1=1
and DM_REFERENCE = @p_libelle
and DM_TOME = @p_tome)
ELSE
IF elect count (*) from table_utilisation
       where statue = 'OK' and 
       lib = @p_libelle
       and tome =@p_tome) = 0
THEN 
UPDATE DOSSIER_MODIF
SET OP_DATE_MAJ= SYSDATE, 
OP_MODI=@p_user,
DM_ETAT='Maj'
where 1=1
and DM_REFERENCE = @libelle
and DM_TOME = @tome) 
ELSE 
END;
/
merci d avances pour votre aide et vos eclaircissements

OOPS j oubliais le preincipal : je suis sur ORACLE 9i