Domanda

Nello script seguente, quando c'è un errore SQL, %errorlevel% è 0 - perché è questo?

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
)   

Se rimuovo il blocco if (sotto) allora % ErrorLevel % è non zero! Perché l'istruzione IF influisce sul livello di errore?

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

Aggiornare: Credi che fosse il modo in cui stavo testando un errore. Penso invece di:

if %errorlevel% gtr 0 goto dberror

.. dovrebbe usare:

if errorlevel 1 goto dberror

Link utile qui

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top