Быстрый и простой вопрос:Возврат ошибок из PL/SQL
Я пишу хранимую процедуру PL/SQL. Он содержит некоторые вызовы execute immediate
, которые могут выйти из строя. Я не хочу поднимать ошибку. Я хочу, чтобы хранимая процедура завершила свое выполнение и вернула список ошибок. Что-то вроде:
for vRecord in vCursor
loop
begin
execute immediate 'insert into t(a) values (' || vRecord.val || ')';
when others then
-- store the error somewhere to return it!!
end;
end loop;
Так что мой вопрос: какой рекомендуемый способ вернуть эти ошибки? Стол? Параметр out?
Большое спасибо.
Спасибо! Я подумал об этом. Не знаю, если это лучший вариант. Кажется, что OVERKILL использует ТАБЛИЦУ только для того, чтобы возвращать ошибки ... Спасибо за предложение в любом случае! –
Никогда не переполняйте ошибки журнала, передовую практику;) И у вас есть контрольный журнал того, что происходит со временем, предполагая, что это то, что вы будете запускать на некоторой частоте. – tbone
Вы действительно должны использовать что-то вроде dbms_utility.format_error_stack || dbms_utility.format_error_backtrace, а не только SQLERRM. –