以下のスクリプトでは、SQL エラーが発生する%errorlevel%
と 0 になります。これはなぜですか?
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
)
if ブロック (以下) を削除すると、%errorlevel% はゼロではありません! if ステートメントがエラー レベルに影響するのはなぜですか?
(
echo WHENEVER SQLERROR EXIT FAILURE
echo @release.sql
echo exit
) | sqlplus x/x@orcl
echo error: %errorlevel%
if %errorlevel% gtr 0 goto dberror
更新:それは私がエラーをテストしていた方法だと信じています。私は代わりに考えます:
if %errorlevel% gtr 0 goto dberror
..使用する必要があります:
if errorlevel 1 goto dberror
便利なリンクはこちら