Manuel des Scripts Automation Engine > JCL d'AE pour SQL > SQL_ON_ERROR

SQL_ON_ERROR

Définit la réaction en cas d'erreur SQL.

Syntaxe

SQL_ON_ERROR ACTION=...

Elément de syntaxe

Description/format

ACTION=

Réaction en cas d'erreur SQL

Valeurs autorisées : "ABEND" (valeur par défaut) et "RESUME".

"ABEND" - Dès qu'une erreur SQL se produit, le Job s'interrompt avec le code retour "1". Les instructions SQL suivantes ne sont pas exécutées.
"RESUME" - Le Job se poursuit en dépit des erreurs SQL qui se produisent.

 La valeur doit figurer entre guillemets.

 Si vous ne saisissez pas de paramètre, "RESUME" est utilisé.

Remarques

Par défaut, les Jobs sont interrompus lorsque des erreurs SQL surviennent. Cet élément de script vous permet de contrôler ce comportement.

Le paramétrage défini avec SQL_ON_ERROR s'applique à toutes les instructions SQL qui suivent, jusqu'à la fin du Job ou jusqu'à l'instruction SQL_ON_ERROR suivante.

 Attention : en cas d'interruption du Job, toutes les instructions SQL postérieures à la dernière validation (COMMIT) effectuée sont annulées. Si le Job ne comporte pas d'opération de validation (COMMIT), toutes les instructions SQL sont annulées.

Exemple

La deuxième instruction INSERT génère une erreur car le nom de la table contient une erreur de saisie. L'Agent poursuit tout de même le Job et peut écrire l'enregistrement pour Monsieur Huber dans la base de données.

SQL_ON_ERROR ACTION="RESUME"
insert into person values (1,'Meier');
insert into persson values (2,'Mueller');
insert into person values (3,'Huber');

Dans l'exemple suivant, l'Agent interrompt le Job en raison du nom de table erroné. L'entrée de l'enregistrement pour Monsieur Meier n'est pas annulée par le biais du Script COMMIT. Dans la mesure où le Job est interrompu par la deuxième instruction INSERT, l'enregistrement pour Monsieur Huber n'est plus pris en compte, bien qu'il soit correct du point de vue syntaxique.

SQL_ON_ERROR ACTION="ABEND"
insert into person values (1,'Meier');
COMMIT;
insert into persson values (2,'Mueller');
insert into person values (3,'Huber');

 

Rubriques connexes :