Допустит, я звоню процедуру PLSQL из другой процедуры (все определенно в том же пакете)PLSQL распространяющегося/повышение исключения из подпрограммы/блока
Я пытаюсь вызвать ошибку приложения из proc1 будет отображаться на aC# program (proc1 будет вызовом записи), когда что-то пойдет не так. Его прямо, когда исключение происходит в proc1. Но как распространять ту же ошибку, которая возникает в proc2?
Должен ли я объявлять тот же самый пользовательский пример EXCEPTION в proc1? Или Должен ли я иметь глобальную переменную исключения на уровне пакета? Какая стандартная практика? (PLS игнорировать любые ошибки код такой EXCEPTION_INIT и т.д ..) я только включили код для концепции ..
create or replace procedure proc1 is
begin
--some plsqlcode
proc2();
exception
raise_application_error(????);
end proc1;
create or replace procedure proc2 is
user_exception EXCEPTION;
begin
--do something
if (somefalse condition) then
raise user_exception
exception
when user_exception then
--do some error handling
raise;
end proc2;
Я надеюсь, что я был ясно обрамление вопроса. Заранее благодарим за предложения/советы.
Боб, это стандартная практика? Я могу определенно объявить исключение в спецификации пакета. – cableload
Если исключение не должно быть видимым за пределами корпуса пакета (т. Е. Используется только процедурами внутри корпуса пакета), я просто поместил его в тело пакета. И да, я бы сказал, что это стандартная практика - я использую подобные объявления в пакетах, которые я пишу все время. Поделитесь и наслаждайтесь. –
Спасибо, Боб. Оно работает ! – cableload