Téléchargement
illégal
Posez votre question Signaler

[SQL] gestion des erreurs

savior 3Messages postés 17 mai 2006Date d'inscription - Dernière réponse le 10 mai 2007 à 13:01
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.
Lire la suite 

[SQL] gestion des erreurs »

1 réponses
Réponse
+0
moins plus
ca vient que pour que les modifs soient prises en compte, il faut commiter, avec la fonction commit();
Ajouter un commentaire
Ce document intitulé « [SQL] gestion des erreurs » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?