SGBD/BD : TP2 Exception
Monday, June 6, 2011     17:19
  • Mon @ IP: 54.80.68.137



retour

Poster un commentaire ou une réponse

TP2 Exception

  Zaineb :
nb posts:320
nb discussions:33
inscrit le :23-01-2015
le 04-02-2015 à 11:39:34

TP-Exception.docx

  Zaineb :
nb posts:320
nb discussions:33
inscrit le :23-01-2015
le 04-02-2015 à 11:55:34

Correction:

--Exercice 1



create or replace procedure insertion_dept(v_dpt departments.department_id%type,
nom varchar2,manager number,location number)
IS
begin
Insert into departments values(v_dpt,nom,manager,location);
EXCeption
when dup_val_on_index
then
dbms_output.put_line('Clé dupliquée!');
rollback;
end;

begin
insertion_dept(80,'RH',100,1700);
end;
--> Clé dupliquée!

Exercice 2

DELETE FROM MESSAGES;

DECLARE
enameemployees.last_name%TYPE;
emp_sal employees.salary%TYPE := 6000;
BEGIN
SELECTlast_name
INTO ename
FROMemployees
WHEREsalary = emp_sal;
INSERT INTO messages (results)
VALUES (ename || ' - ' || emp_sal);
EXCEPTION
WHEN no_data_found THEN
INSERT INTO messages (results)
VALUES ('No employee with a salary of '|| TO_CHAR(emp_sal));
WHEN too_many_rows THEN
INSERT INTO messages (results)
VALUES ('More than one employee with a salary of '||
TO_CHAR(emp_sal));
WHEN others THEN
INSERT INTO messages (results)
VALUES ('Some other error occurred.');
END;
/
SELECT * FROM messages;

!! Ne pas oubliez : le gestionnaire when others est facultatif et doit être mis en dernier.

--Exercice 3

DECLARE
v_eval_prime employees.commission_pct%type;
v_emp employees%rowtype;
CURSOR c_emp IS
SELECT last_name, job_id, commission_pct, salary
FROM employees
WHERE department_id = 30;
BEGIN
OPEN c_emp;
LOOP
FETCH c_emp INTO v_emp.last_name, v_emp.job_id, v_emp.commission_pct, v_emp.salary;
EXIT WHEN c_emp%NOTFOUND;
v_eval_prime := v_emp.commission_pct + (v_emp.salary/v_emp.commission_pct);

dbms_output.put_line('Name = '||v_emp.last_name || ' Job = ' || v_emp.job_id ||
' Re-evaluation Prime = ' ||v_eval_prime);
END LOOP;
CLOSE c_emp;
EXCEPTION
WHEN ZERO_DIVIDE THEN
dbms_output.put_line(SQLERRM(SQLCODE)||' SALARIE SANS PRIME !!');
WHEN OTHERS THEN
dbms_output.put_line('Autres Erreurs');
END;
/
le SQlERRM et SQLCode sont des fonctions génériques qui permettent d'afficher le message et le code
de l'erreur Oracle.

Exercice 4


CREATE OR REPLACE FUNCTION factorielle (N IN NUMBER)
RETURN NUMBER IS
ex_negatif_number EXCEPTION;
BEGIN
IF (N=1 or n=1) THEN
RETURN 1;
ELSE
if n<0 then raise ex_negatif_number ;
else
RETURN N *factorielle(N-1);
END IF;
end if;
EXCEPTION
when ex_negatif_number then
raise_application_error(-20897,'entrez un nb positif!');
END;

// appel
declare
n number;
begin
n:= factorielle(-10);
dbms_output.put_line(n);
end;

--> le raise_application error permet de créer une exception personnalisée avec un message et un code erreur

Exercice 5

CREATE TABLE "SALGRADE"
("MINSAL" NUMBER,
"MAXSAL" NUMBER,
"JOBCLASS" VARCHAR2(30),
CONSTRAINT "SALGRADE_CON" FOREIGN KEY ("JOBCLASS")
REFERENCES "JOBS" ("JOB_ID") ON DELETE CASCADE ENABLE
)

CREATE or replace TRIGGER sal_check
BEFORE INSERT OR UPDATE OF salary, job_id ON employees
FOR EACH ROW
DECLARE
minsal NUMBER;
maxsal NUMBER;
sal_hors_rang EXCEPTION;
BEGIN
SELECT minsal,maxsal INTO minsal, maxsal FROM salgrade
WHERE jobclass= :new.job_id;
IF (:new.salary < minsal OR :new.salary > maxsal) THEN RAISE sal_hors_rang;
END IF;
EXCEPTION
WHEN sal_hors_rang THEN
raise_application_error(-20300, 'Salaire' || TO_CHAR
(:new.salary) || ' hors rang');
WHEN NO_DATA_FOUND THEN
raise_application_error(-20322, 'Invalide Job');
END;


Exercice 6

Create or replace trigger limite_salaire_moy
After insert or update of Salary on EMPLOYEES
Declare
moy number;
Depas_limite_sal_moy Exception;
BEGIN
select avg(Salary) into moy
from EMPLOYEES;
If moy > 4000 then raise Depas_limite_sal_moy;
End if;
Exception
When Depas_limite_sal_moy Then
Raise_application_error(-20300, 'La moyenne des salaires, '|| TO_CHAR
(moy) || ', dépasse la limite');
END;

Poster un commentaire ou une réponse :
Poster
     Ajouter un document à la discussion:
       

Actualité informatique et High-Tech

16-10-2015               lire

Dropbox propose aussi un outil d'écriture collaborative à son service

16-10-2015               lire

Bientôt des DRM dans des JPEG

17-04-2015               lire

Google propose une requête pour retrouver son téléphone

17-04-2015               lire

Youtube prépare une offre payante sans publicité

17-04-2015               lire

Sony Pictures : Des milliers de mails et documents confidentiels dévoilés

07-04-2015               lire

T411 bloqué par les FAI français

07-04-2015               lire

NVIDIA publie un pilote correctif et met à jour SHIELD Hub ainsi que GeForce Experience

07-04-2015               lire

Linkedin acquiert la start-up Refresh

03-04-2015               lire

Chromebit, la clé USB Google et Asus qui transforme n’importe quel écran en ordinateur

03-04-2015               lire

Une personne aurait pu supprimer toutes les vidéos d’une chaine Youtube en quelques secondes

03-04-2015               lire

Firefox 37 apporte un cryptage complémentaire à HTTPS

03-04-2015               lire

Windows XP, ce système qui ne veut pas mourir

02-04-2015               lire

Piratage de Labio.fr : le laboratoire répond à nos questions et ne payera pas la rançon

02-04-2015               lire

AWS lance des instances géantes avec 48 To de stockage

02-04-2015               lire

WhatsApp ajoute les appels gratuits et illimités à son application

31-03-2015               lire

Nadim Kobeissi : de Cryptocat à Peerio, du piratage au doctorat

31-03-2015               lire

L'Université de Nantes inaugure son datacenter modulaire taillé pour le HPC

31-03-2015               lire

GitHub victime d’une attaque DDoS majeure

27-03-2015               lire

Googlinette : les recherches de Google en devinettes

27-03-2015               lire

F8 : Facebook ouvre Messenger au e-commerce

27-03-2015               lire

À la SNCF, une fuite de données simple comme une touche F5

23-03-2015               lire

Des satellites GPS de Boeing affectés par une erreur technique

23-03-2015               lire

Plus de 700 000 routeurs ADSL vulnérables au piratage

23-03-2015               lire

Twitter sous le coup d’une action collective pour discrimination

22-03-2015               lire

Les montres connectées étaient déjà présentes dans les films, séries et dessins animés

22-03-2015               lire

Une Audi autonome va traverser les USA de SF à New York

20-03-2015               lire

Éclipse du Soleil : comment la suivre en direct sur Internet

20-03-2015               lire

Projet Leap : des bus 2.0 à San Francisco

20-03-2015               lire

Nvidia dévoile Drive PX, un système de conduite autonome

17-03-2015               lire

Embarquez pour Apollo 11, expérience virtuelle hors du commun

16-03-2015               lire

Ce jour où Google a exposé les données de 282 867 domaines

16-03-2015               lire

Yahoo publie le code de son plug-in de chiffrement mail

16-03-2015               lire

Après un an sans mise à jour, HAWKEN revient à la vie

12-03-2015               lire

Le big data au service du séquençage ADN pour accélérer les diagnostics

12-03-2015               lire

Clap de fin pour PlayStation Mobile

12-03-2015               lire

Apple : retour à la normale après une panne de plus de 11 heures

12-03-2015               lire

Ericsson va supprimer 2 200 postes en Suède

12-03-2015               lire

Le plan de Fleur Pellerin contre le piratage sur Internet

10-03-2015               lire

Apple Watch, Watch Edition et Watch Sport : de 399 à 18.000 euros !

10-03-2015               lire

Apple présente le “nouveau MacBook” qui remplace le MacBook Air

09-03-2015               lire

Google développe une version d'Android pour la réalité virtuelle

09-03-2015               lire

Quand la MPAA demande à Google de déréférencer son propre site

09-03-2015               lire

Heroes of the Dorm : un tournoi HotS avec 450 000 $ de bourses d'études à gagner

09-03-2015               lire

1 milliard d'adresses mails volées, 2 pirates inculpés

09-03-2015               lire

VMware accusé de violation de code Linux

09-03-2015               lire

Les drones civils bientôt immatriculés ?

05-03-2015               lire

7 sites qui permettent d’envoyer des fichiers de + ou – 2 Go

04-03-2015               lire

Smartphones : Apple passe en tête devant Samsung56% des consommateurs inquiets pour leurs données en Europe

04-03-2015               lire

Smartphones : Apple passe en tête devant Samsung

04-03-2015               lire

MWC 2015 : Onevisage pésente un scan facial 3D pour smartphones

04-03-2015               lire

Caméras sportives : Xiaomi s'attaque au monopole GoPro

04-03-2015               lire

Yi Camera, la caméra embarquée de Xiaomi à moins de 60€

04-03-2015               lire

Faille FREAK : quand des connexions SSL/TLS se contentent d'un chiffrement RSA sur... 512 bits

04-03-2015               lire

Bientôt des pubs sur Google Play (Android)

28-02-2015               lire

En partenariat avec "Positive Technologies", Esprit a l'honneur d'inviter ses étudiants à la 1ère édition de l’événement ESPRIT HACK DAYS dans les locaux d'ESPRIT Chotrana 2 et ce le 03 et le 04 Mars 2015.

28-02-2015               lire

La direction des stages d’ESPRIT et Ernst & Young ont le plaisir d'inviter ses étudiants à la journée de l’entreprise du mercredi 4 mars 2015 dans la salle E5 d’ESPRIT Factory.

25-02-2015               lire

Adobe fête les 25 ans de son logiciel Photoshop

25-02-2015               lire

Linux 4.0 : gros numéro et petite version

Haut de page.