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'
);
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 mes 2 problème sont les suivants :
- quand je lance le fichier (avec sqlplus), et que je Kill son processus, rien n'est rajouté dans la TABLE1 (alors qu'il y a un insert valide...)
- aucune erreur ne s'affiche non plus 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.
Partager