Мы имеем следующий пакетный скрипт:Обнаружение ошибки sqlplus в сценарии dos batch?
(
echo @release.sql
echo exit
) | sqlplus x/[email protected]
if %errorlevel% gtr 1 goto dberror
Издание является - заявление if %errorlevel% gtr 1
никогда не кажется, чтобы быть правдой, если есть SQL ошибка.
Если положить команды мусора в файле release.sql, SQLPLUS это жалуются:
SQL> SP2-0042: unknown command "blah" - rest of line ignored.
SQL> Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
Но %errorlevel%
все еще равен 0. Как мы можем определить, что произошла ошибка SQL?
Update: этот код появляется на работе некоторых ошибок SQL. Она будет работать, если я drop table blah
, но это не будет работать только с командой blah
'WHENEVER SQLERROR EXIT SQL.SQLCODE' сделал трюк –