Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как избавиться от ora-06152 и ora-04088 при RAISE_APPLICATION_ERROR / 4 сообщений из 4, страница 1 из 1
19.05.2003, 11:55:07
    #32162817
EthernalWonderer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как избавиться от ora-06152 и ora-04088 при RAISE_APPLICATION_ERROR
Уважаемые Господа!
Ситуация такова: в триггере делается некая проверка, в которой исследуется право user'a делать изменение. При отсутствии оного вызывается
raise_application_error(-20101,'Недостаточно привилегий ...!');
Однако user'у "впридачу" к требуемой ошибке выдаётся ещё ora-06152 и ora-04088 с указанием наименования триггера и номера строки, где произошло исключение.

Как бы избавиться от этого "прицепа"?
...
Рейтинг: 0 / 0
20.05.2003, 01:00:36
    #32163524
vskv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как избавиться от ora-06152 и ora-04088 при RAISE_APPLICATION_ERROR
Вообще-то, сильно зависит от клиента -- некоторые выдают только реальную ошибку, а не весь стек.
Вариант -- сделать врапер, который будет ловить exception, прятать лишний стек и ещё раз выкидывать. Хотя, всё равно всё не отловишь.
...
Рейтинг: 0 / 0
20.05.2003, 13:56:14
    #32164006
EthernalWonderer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как избавиться от ora-06152 и ora-04088 при RAISE_APPLICATION_ERROR
>vskv
Да, так можно реализовать. При этом отлавливать сообщение проще на клиенте - благодаря развитому по сравнению с pl/sql языку. Но это дополнительная морока и нагромождения в программе. Хотелось бы воспользоваться каким - нибудь "штатным" методом - видимо, это невозможно.
...
Рейтинг: 0 / 0
17.06.2003, 22:34:27
    #32184816
Black Dragon
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как избавиться от ora-06152 и ora-04088 при RAISE_APPLICATION_ERROR
Я в Oracle Forms делаю так:
------------------------------------------------------
trigger ON-ERROR
Message(Substr(Dbms_Error_Text,1,Instr(Dbms_Error_Text,Chr(10))));
------------------------------------------------------

Дело в том что все сообщения пишутся с новой строки,
т.е. получается что-то вроде:
ORA-20010 <текст>
ORA-06152 <текст>
ORA-04088 <текст>

Ваша ошибка всегда идет первой,
так что достаточно из всего текста сообщения
вырезать первое до символа перевода строки.

Со зверским уважением Black Dragon
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как избавиться от ora-06152 и ora-04088 при RAISE_APPLICATION_ERROR / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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