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



retour

Poster un commentaire ou une réponse

TP Exception

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

exemple 1:exception oracle too_many_rows, le traitement est affichage d'un message d'erreur
declare
lname varchar2(15);
begin
select last_name into lname from employees where first_name='John';
dbms_output.put_line('John''s last name is:'||lname);
exception
when too_many_rows then
dbms_output.put_line('your select statement retrieved multiple rows.Consider using a cursor.');
end;

exemple 2: deux exceptions too_many_rows et no_data_found, le traitement est affichage d'un message d'erreur
declare
lname varchar2(15);
begin
select last_name into lname from employees where last_name='John';
dbms_output.put_line('John''s last name is:'||lname);
exception
when too_many_rows then
dbms_output.put_line('your select statement rtrieved many rows...');
when no_data_found then
dbms_output.put_line('no data found corresponding to your select statement');
end;

exemple 3:deux exceptions too_many_rows et no_data_found, le traitement est insertion du message d'erreur dans une table
à créer
create table t11
(c1 varchar(20));
declare
lname varchar2(15);
begin
select last_name into lname from employees where last_name='John';
dbms_output.put_line('John''s last name is:'||lname);
exception
when too_many_rows then
insert into t11 values('trop de lignes');
when no_data_found then
insert into t11('no data found');
end;

exemple 4:le traitement d'autres exceptions "others"ici est d'insérer dans une table à créer le code d'erreur ainsi que
le message d'erreur retournés par sqlcode et sqlerrm
create table errors(ec number,em varchar2(255));
declare
lname varchar2(15);
error_code number;
error_message varchar2(255);
begin
select last_name into lname from employees where last_name='John';
dbms_output.put_line('John''s last name is:'||lname);
exception
when too_many_rows then
dbms_output.put_line('your select statement rtrieved many rows...');
when others then
error_code:=sqlcode;
error_message:=sqlerrm;
insert into errors values (error_code,error_message);
end;

correction de cet exemple proposé par le prof:
create table tab1(error_code number,error_message varchar2(255));
declare
var employees.last_name%type;
begin
select last_name into var from employees where last_name='John';
exception
when too_many_rows then
dbms_output.put_line('trop de lignes');
when others then
insert into tab1 values(sqlcode,sqlerrm);
end;

exemple5:ajout d'une exception définie par l'utilisateur qui sera déclenchée si v1>v2 pour afficher le message d'erreur
v1 est supérieur à v2
declare
var employees.last_name%type;
v1 number:=50;
v2 number:=30;
sup_exception exception;
begin
select last_name into var from employees where last_name='John';
if v1>v2 then
raise sup_exception;
end if;
exception
when too_many_rows then
dbms_output.put_line('trop de lignes');
when sup_exception then
dbms_output.put_line('v1 est supérieur à v2');
when others then
insert into tab1 values(sqlcode,sqlerrm);


exemple6: exception définie par user qui sera déclenchée si le nombre de lignes pour le curseur est sup à 30
declare
las varchar2(20);
cursor emp_cur is select last_name from employees;
i number;
verif exception;
begin i:=1;
open emp_cur;
fetch emp_cur into las;
while emp_cur%found loop
fetch emp_cur into las;
i:=i+1;
dbms_output.put_line(las);
if i>30 then
raise verif;
end if;
exit when emp_cur%notfound;
end loop;
exception
when verif then
dbms_output.put_line('nombre de lignes sup à 30');
end;

exemple 7: exception avec affichage ORA-20000:v1 sup à v2
declare
v1 number:=50;
v2 number:=30;
begin
if v1>v2 then
raise_application_error(-20000,'v1 sup à v2');
end if;
end;

exemple 8: on va affecter à une exception définie par user un numéro
cas 1:affectation de numéro+traitement est l'affichage d'un message d'erreur personnalisé
declare
v1 number:=50;
v2 number:=30;
supp exception;
pragma exception_init(supp,-20000);
begin
if v1>v2 then
raise supp;
end if;
exception
when supp then
dbms_output.put_line('v1 sup à v2');
end;
cas 2:affectation de numéro+traitement est l'affichage du msg ORA-20000:erreur
declare
v1 number:=50;
v2 number:=30;
supp exception;
pragma exception_init(supp,-20000);
begin
if v1>v2 then
raise_application_error(-20000,'erreur');
end if;
exception
when supp then
dbms_output.put_line('sup');
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.