Ecrire une procédure stockée PL/SQL :
avatarbrix1
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
avatarbrix1 Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
avatarbrix1 Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
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;
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:
- Ecrire une procédure stockée PL/SQL :
- Ecrire en gras sur whatsapp - Guide
- Comment écrire # sur pc - Guide
- Écrire en majuscule - Guide
- Ecrire en miroir - Guide
- Application pour ecrire une lettre - Télécharger - Dictionnaires & Langues
1 réponse
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 .
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 .
avatarbrix1
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
merci gironsul