Я выполняю экстракцию данных для своих процедур каждые 1 час. Я хочу отслеживать сообщение об ошибке ошибки для выполнения процедуры во время этого извлечения, чтобы я мог проверить мои файлы журналов и исправить их. Я пишу вышеуказанный код для отслеживания сообщения об ошибке для одной из процедур i.e EXT_10035_WS_ACTMAN
, но не работал. У меня есть ошибка в этой процедуре т.е. Unique constratint нарушена, однако он не был прочитан DBMS.OUTPUT.PUT_LINE
Как отслеживать сообщение об ошибке exeception во время выполнения процедуры
BEGIN
DBMS_OUTPUT.PUT_LINE('START EXT_10035_WS_ACTMAN '||TO_CHAR(CURRENT_TIMESTAMP));
DATA_CAPTURING.EXT_10035_WS_ACTMAN;
COMMIT;
DBMS_OUTPUT.PUT_LINE('STOP EXT_10035_WS_ACTMAN '||TO_CHAR(CURRENT_TIMESTAMP));
EXCEPTION WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('EXCEPTION START EXT_10035_WS_ACTMAN '||TO_CHAR(CURRENT_TIMESTAMP));
DBMS_OUTPUT.PUT_LINE ('EXCEPTION' || SQLERRM);
DBMS_OUTPUT.PUT_LINE ('ERROR CODE' || SQLCODE);
END;
Это код производства? Если это так, не используйте 'dbms_output.put_line'; это то, что нужно использовать только для специальных вещей, а не для производственного кода! Вместо этого, если вы хотите сохранить журнал своих прогонов, вы должны создать таблицу журналов, а затем вставить в нее. В идеале ваша процедура 'data_capturing.ext_100.5_ws_actman' также имеет вызовы для входа в ту же таблицу, чтобы вы могли отслеживать, что происходит во время процедуры. – Boneist