Ecrire une procédure stockée PL/SQL :

Fermé
avatarbrix1 Messages postés 2 Date d'inscription jeudi 9 avril 2015 Statut Membre Dernière intervention 9 avril 2015 - 9 avril 2015 à 14:35
avatarbrix1 Messages postés 2 Date d'inscription jeudi 9 avril 2015 Statut Membre Dernière intervention 9 avril 2015 - 9 avril 2015 à 14:44
s'ils vous plait ,pui_je avoir une solution a cet exercice ?

Ecrivez une procédure stockée PL/SQL qui permet de vérifier, avant l'ajout d'une personne dans la
base, si les contraintes suivantes sont vérifiées : dateConstruction de l'appartement occupé ?
dateArrivée occupant < dateDépart occupant (la dateDépart peut avoir la valeur NULL).
Si une contrainte n'est pas vérifiée, la procédure doit l'indiquer par un message spécifique.
Si les contraintes sont vérifiées, la personne est ajoutée dans la base.
La procédure prendra comme paramètres les attributs de la table Personne correspondant à la
personne à ajouter (nom, adresse, n°appartement, dateArrivée, dateDépart, âge, profession).

voila ce que j'ai essayer de faire. aider moi



CREATE OR REPLACE PROCEDURE
VerifieContrainte(nomPersonne IN Personne.nom%TYPE,
adressePersonne IN Personne.adresse%TYPE,
appartPersonne IN Personne.noappartement%TYPE,
arriveePersonne IN Personne.dateArrivee%TYPE,
departPersonne IN Personne.dateDepart%TYPE,
agePersonne IN Personne.age%TYPE,
profPersonne IN Personne.profession%TYPE,
doInsert IN INTEGER DEFAULT 0) IS
DECLARE
dateConstructionImmeuble Immeuble.dateConstruction%TYPE;
BEGIN
IF arriveePersonne >= departPersonne THEN
DBMS_OUTPUT.PUT_LINE(`Rejet ' || nomPersonne ||
` : arrivée doit être antérieure au depart !');
ELSE
SELECT dateConstruction INTO dateConstructionImmeuble
FROM Immeuble
WHERE adresse = adressePersonne;
IF dateConstructionImmeuble IS NULL THEN
DBMS_OUTPUT.PUT_LINE(`Rejet ' || nomPersonne ||
` : date construction immeuble inconnue !');
ELSIF arriveePersonne < dateConstructionImmeuble THEN
DBMS_OUTPUT.PUT_LINE(`Rejet ' || nomPersonne ||
` : arrivée doit être ultérieure à construction immeuble !');
ELSIF doInsert != 0
INSERT INTO Personne
VALUES (nomPersonne, adressePersonne, appartPersonne, arriveePersonne, departPersonne, agePersonne, profPersonne);
END IF;
END IF;
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE (`Aucun immeuble enregistré à cette adresse !');
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE (`Procédure VerifieContrainte abandonnée !') ;
END VerifieContrainte;
A voir également:

1 réponse

Utilisateur anonyme
9 avril 2015 à 14:36
Bonjour .

Afin d'avoir une réponse rapide et objective des différents intervenants du forum CCM ,

il serait souhaitable de reformuler votre question avec des formules simples de courtoisie

telles que " Bonjour " , s'il vous plait " , " merci " .


Merci d'avance et bonne journée .


0
avatarbrix1 Messages postés 2 Date d'inscription jeudi 9 avril 2015 Statut Membre Dernière intervention 9 avril 2015
9 avril 2015 à 14:44
merci gironsul
0