Обработчики исключений / ошибок в DB2? - PullRequest
1 голос
/ 06 октября 2011

У меня есть куча сценариев SQL (с оболочками сценариев оболочки) для выгрузки данных, например:

    EXPORT TO /tmp/out.csv OF DEL MODIFIED BY NOCHARDEL  COLDEL, DATESISO 
MESSAGES /tmp/out.msg SELECT WIDGETID
    ...

Я хочу добавить обработчик ошибок в сценарий так, как это делает Oracle:

WHENEVER SQLERROR EXIT FAILURE;
SPOOL  /tmp/out.csv;
SELECT WIDGETID...
SPOOL OFF;

Согласно документации DB2, это можно сделать с помощью хранимых процедур: C, Perl, REXX и ничего больше ...

Как это можно сделать в сценариях SQL?

Я использую DB2 / LINUXX8664 9.7.2.

1 Ответ

1 голос
/ 07 октября 2011

вы можете использовать командный процессор DB2 и получить код возврата. http://publib.boulder.ibm.com/infocenter/db2luw/v9r5/topic/com.ibm.db2.luw.admin.cmd.doc/doc/r0010411.html

или вы можете использовать процедуру SYSPROC.ADMIN_CMD и использовать ее коды возврата. http://publib.boulder.ibm.com/infocenter/db2luw/v9r5/topic/com.ibm.db2.luw.sql.rtn.doc/doc/r0023573.html

Вы можете поместить сохраненные вызовы процедур в файл сценария и выполнить что-то вроде db2 -tvf runexport.txt или поместить команды db2 в файл сценария linux и использовать foo для сценариев linux для обработки кодов возврата db2.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...