Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как выдать на клиента исключение и продолжить при этом выполнение кода на сервере? / 4 сообщений из 4, страница 1 из 1
29.04.2017, 00:56
    #39446420
verter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как выдать на клиента исключение и продолжить при этом выполнение кода на сервере?
В триггере когда происходит исключение, то делаю вызов стандартной процедуры rise_application_error чтобы передать его на клиента. При этом выполнение триггера прекращается и всё что в нём выполнилось не фиксируется.
Можно ли каким либо образом из триггера так же на клиента передать сообщение, но чтобы при этом после передачи сообщения продолжился выполняться код в триггере и в результате изменения были зафиксированы как при правильном его срабатывании, т.е. без возникновения исключения?
...
Рейтинг: 0 / 0
29.04.2017, 01:41
    #39446427
Как выдать на клиента исключение и продолжить при этом выполнение кода на сервере?
verter,

не используй триггеры
...
Рейтинг: 0 / 0
29.04.2017, 03:11
    #39446431
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как выдать на клиента исключение и продолжить при этом выполнение кода на сервере?
для исключегийverter,

не используй триггеры
ну есть еще вариант - не использовать исключения

Ну вообще, вещи:

"исключение", "продолжился выполняться код в триггере" и " изменения были зафиксированы" - достаточно независимы друг от друга, исключение ни как не мешает фиксировать изменения, а уж продолжить выполнение или прервать зависит исключительно от программиста.

IMHO & AFAIK
...
Рейтинг: 0 / 0
29.04.2017, 09:23
    #39446454
irbis_al
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как выдать на клиента исключение и продолжить при этом выполнение кода на сервере?
verter,

Да просто не используйте raise...
Оберните в пакетную функцию возвращающую код ошибки придуманный Вами по своему разумению.

Вернув 0 ошибок нет.
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
function get_res(params) return binary_integer is
begin
if () then result:=2; end if;

begin
.......
exception when no_data_found then result:=4;
end;

begin
.......
exception when others then result:=10;
end;

return result;
end;



А дальше Ваша прога анализирует ответ и выдаёт исключение на экран в зависимости от result...а функция что-то там сделает в базе данных.
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как выдать на клиента исключение и продолжить при этом выполнение кода на сервере? / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]