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; |
Partager