Question

Dans le script ci-dessous, lorsqu'il y a une erreur SQL, %errorlevel% est 0 - pourquoi est-ce?

IF %RELEASE% GTR 2 (
    (
    echo WHENEVER SQLERROR EXIT FAILURE
    echo @release.sql
    echo exit
    ) | sqlplus x/x@orcl
    echo error: %errorlevel%
    if %errorlevel% gtr 0 goto dberror
)   

Si je supprime le bloc IF (ci-dessous),% ErrorLevel% n'est pas zéro! Pourquoi l'instruction IF affecte-t-elle le niveau d'erreur?

    (
    echo WHENEVER SQLERROR EXIT FAILURE
    echo @release.sql
    echo exit
    ) | sqlplus x/x@orcl
    echo error: %errorlevel%
    if %errorlevel% gtr 0 goto dberror

Mise à jour: Croyez que c'était la façon dont je testais une erreur. Je pense qu'au lieu de:

if %errorlevel% gtr 0 goto dberror

.. devrait utiliser:

if errorlevel 1 goto dberror

Lien utile ici

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top