J'ai une procédure stockée qui a un paramètre OUT, indiquant un code d'erreur. Si le code d'erreur est de 0, alors je lève une erreurSQL * Plus: Forcez-le à retourner un code d'erreur
DECLARE
BEGIN
foo (err_code);
IF (err_code <> 0) THEN
raise_application_error(...);
END;
Jusqu'à présent, si bon, mais voici ma question.
Ce morceau de code (illustré ci-dessus) est exécuté par sqlplus, qui est appelé à partir d'un script shell, qui doit sortir avec 0/non 0 (comme le script sql).
#shell script
sqlplus ... @myscript
return $?
Lorsque le RAISE_APPLICATION_ERROR exécute, le contrôle revient à sqlplus.
sql>
Ce que je veux, est une façon de sortir de retour à la coque, sans sqlplus retourner un 0 sur $?
Des pensées? Merci d'avance.
Merci, exactement ce dont j'avais besoin. – Tom
Nous faisons 'à chaque fois que sqlerror quitte sql.sqlcode', qui transmet un peu plus d'informations à l'appelant du script. Nous faisons également 'chaque fois que oserror exit 1' dans le cas où SQLPlus se déclenche sur une sorte d'erreur au niveau du système d'exploitation. –