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

Как бы избавиться от этого "прицепа"?
...
Рейтинг: 0 / 0
Как избавиться от ora-06152 и ora-04088 при RAISE_APPLICATION_ERROR
    #32163524
vskv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще-то, сильно зависит от клиента -- некоторые выдают только реальную ошибку, а не весь стек.
Вариант -- сделать врапер, который будет ловить exception, прятать лишний стек и ещё раз выкидывать. Хотя, всё равно всё не отловишь.
...
Рейтинг: 0 / 0
Как избавиться от ora-06152 и ora-04088 при RAISE_APPLICATION_ERROR
    #32164006
EthernalWonderer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
>vskv
Да, так можно реализовать. При этом отлавливать сообщение проще на клиенте - благодаря развитому по сравнению с pl/sql языку. Но это дополнительная морока и нагромождения в программе. Хотелось бы воспользоваться каким - нибудь "штатным" методом - видимо, это невозможно.
...
Рейтинг: 0 / 0
Как избавиться от ora-06152 и ora-04088 при RAISE_APPLICATION_ERROR
    #32184816
Black Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я в 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
4 сообщений из 4, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как избавиться от ora-06152 и ora-04088 при RAISE_APPLICATION_ERROR
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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