Rechercher : dans
Par :

[SQL] gestion des erreurs

Dernière réponse le 10 mai 2007 à 13:01:07 savior, le 17 mai 2006 à 10:45:32 
 Signaler ce message aux modérateurs

Bonjour à vous,

j'ai un léger problème !

je voudrais en fait faire un fichier ".SQL" qui capturerait les possibles erreurs lors de l'exécution de ce fichier, et les mettrait dans une table SQL.

Ainsi dans le programme suivant:
- je fais un DECLARE, pour capturer par la suite les erreurs,
- puis une boucle infinie While (1), afin que ce programme dure indéfiniment et que je puisse tranquillement "killer ce processus", simulant ainsi une erreur de connexion (je crois)
- enfin, je tente de capturer l'erreur, et de la mettre dans la table ERREURS avec EXCEPTION...

DECLARE err_code varchar(201); err_msg varchar(201);
BEGIN
while(0<1)
loop
insert into TABLE1 (id, libelle) VALUES
(
'1', 'nom'
);
commit;
end loop;
EXCEPTION
WHEN OTHERS THEN
err_code := SQLCODE;
err_msg := substr(SQLERRM,1,200);
begin
INSERT INTO ERREURS (nom, err_code, err_msg)
VALUES('nom', err_code, err_msg);
end;
END;
/

De plus, TABLE1 et ERREURS sont créées ailleurs que dans ce fichier, ainsi:
create table TABLE1 ( id varchar(50), libelle varchar(50));
create table ERREURS (nom varchar(50), err_code varchar(50), err_msg varchar(50));


Ainsi mon problème est le suivant :
- quand je lance le fichier (avec sqlplus), et que je Kill son processus, rien n'est rajouté dans la table ERREURS (alors qu'une erreur de connexion devrait être affichée)

J'espère que vous avez une solution à mes problèmes!!!

Merci d'avance,
V.

Meilleures réponses pour « [SQL] gestion des erreurs » dans :
[Linux] Problèmes de son VoirLa gestion du son sous GNU/Linux est assez complexe et peut générer pas mal d'erreurs. Cet article n'a pas vocation d'expliquer dans le détail comment Linux gère le son, mais vous trouverez ici des solutions à certains problèmes courants. Le...
Gestion des erreurs VoirPar défaut, en Pascal, la gestion des erreurs est assurée par le compilateur. C’est pour cette raison que le programme s’arrête en affichant un message commençant par Runtime error suivi par le numéro de l’erreur … Alors si le programmeur désire...
SQL - Gestion des permissions VoirGestion des permissions Plusieurs personnes peuvent travailler simultanément sur une base de données, toutefois ces personnes n'ont pas forcément les mêmes besoins: certaines peuvent par exemple nécessiter de modifier des données dans la table,...
PHP - Parser du XML VoirIntroduction à XML PHP permet l'analyse syntaxique (parsage ou parsing en anglais) d'un document XML. Le langage XML (eXtensible Markup Language, traduisez Langage à balises extensibles) est un métalangage, c'est-à-dire un langage permettant de...

1

 bigguiz, le 10 mai 2007 à 13:01:07

Ca vient que pour que les modifs soient prises en compte, il faut commiter, avec la fonction commit();

Répondre à bigguiz