[SQL] gestion des erreurs
savior
Messages postés
4
Statut
Membre
-
bigguiz -
bigguiz -
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.
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.
A voir également:
- [SQL] gestion des erreurs
- Logiciel gestion photo gratuit - Guide
- Logiciel gestion locative gratuit excel - Télécharger - Comptabilité & Facturation
- Gestion des fichiers - Télécharger - Gestion de fichiers
- Gestion planning equipe - Télécharger - Outils professionnels
- Gestion autorisation application android - Guide