powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Расширенная инфа при ошибке
11 сообщений из 11, страница 1 из 1
Расширенная инфа при ошибке
    #39628395
Cheese)))
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сейчас ошибки формируются таким образом
If x < 5 then error := ERROR_X_LESS_5;
где ERROR_X_LESS_5 функция которая вызывает format_call_stack и складывает в лог
таким образом мы узнаем из какого места вылезла ошибка.
Но хочется большего:
Не просто видеть откуда пошла ошибка, но и какие значения были в параметрах на входе в функцию и значения локальных переменных на текущий момент.
Понятно что всё это можно прописать руками (это не вариант, так как кода очень много), но можно ли всё это достать средствами Oracle?
...
Рейтинг: 0 / 0
Расширенная инфа при ошибке
    #39628401
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cheese)))можно ли всё это достать средствами Oracle?Нет.
...
Рейтинг: 0 / 0
Расширенная инфа при ошибке
    #39628505
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Cheese))),

можно через errorstack dump , но это на самый крайний случай
...
Рейтинг: 0 / 0
Расширенная инфа при ошибке
    #39628748
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xtenderCheese))),

можно через errorstack dump , но это на самый крайний случайА оно дампит параметры на входе функции?

У меня была надежда в аналогичной ситуации на plsql_trace_events.proc_params.
Но это поле всегда пустое (последний раз проверял на 12.1).

А нота
Код: plaintext
PROC_PARAMS FIELD IN PLSQL_TRACE_EVENTS TABLE (Doc ID 263662.1)
конкретно говорит "обломитесь", правда она не обновлялась уже 7.5 лет.
...
Рейтинг: 0 / 0
Расширенная инфа при ошибке
    #39629161
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
dbms_photoshopА оно дампит параметры на входе функции?оно дампит память, а в ней эти параметры точно есть.
простенькая проверка
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
SQL> create or replace procedure p2(p in out varchar2) as
  2  begin
  3     p:=p||1/0;
  4
  5  end;
  6  /

Procedure created.

SQL> create or replace procedure p1(p in out varchar2) as
  2  begin
  3     p2(p);
  4  end;
  5  /

Procedure created.

SQL> create or replace function f1(p in varchar2) return varchar2 as
  2  res varchar2(100);
  3  begin
  4     res:=p||'AAAAZZZZ';
  5     p1(res);
  6     return res;
  7  end;
  8  /

Function created.

SQL> alter session set events = '1476 TRACE NAME ERRORSTACK LEVEL 3';

Session altered.

SQL> select (f1('xxxxx')) from dual;
select (f1('xxxxx')) from dual
        *
ERROR at line 1:
ORA-01476: divisor is equal to zero
ORA-06512: at "XTENDER.P2", line 3
ORA-06512: at "XTENDER.P1", line 3
ORA-06512: at "XTENDER.F1", line 5


SQL> disc;
Disconnected from Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production


Код: plsql
1.
2.
$ grep xxxxxAAA baikal_ora_7760.trc
01C36E070 78787878 41414178 5A5A5A41 0000005A  [xxxxxAAAAZZZZ...]

я правда никогда это не выковыривал, т.к. это слишком трудоемко разбирать, но у оракловой техподдержки есть специальная тулза для этого
...
Рейтинг: 0 / 0
Расширенная инфа при ошибке
    #39629575
Cheese)))
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотелось бы иметь дамп параметров тем же процессом что бы скинуть в лог, без погружения в трейсы.
Думаю, для самого оракла это было бы не очень сложно и киллер-фича, жаль что нет встроенной функциональности.
...
Рейтинг: 0 / 0
Расширенная инфа при ошибке
    #39629623
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cheese))),

сделай свою реализацию log4plsql , на основе форка от log4j или log4net, и выдай её страждущим
...
Рейтинг: 0 / 0
Расширенная инфа при ошибке
    #39629625
Cheese)))
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так можно было бы если будет какое-нибудь представление аля v$local_VarAndPar или функция которая выдавала бы параметры и переменные со значениями. Писать все параметры и переменные руками не вариант.
...
Рейтинг: 0 / 0
Расширенная инфа при ошибке
    #39630032
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cheese)))Писать все параметры и переменные руками не вариант.
Автоматизировать добавление вызова логгера для "всех параметров" в текст всех функций не вариант?
Для снижения рисков можно закрыть условной компиляцией.
...
Рейтинг: 0 / 0
Расширенная инфа при ошибке
    #39630044
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymousCheese)))Писать все параметры и переменные руками не вариант.
Автоматизировать добавление вызова логгера для "всех параметров" в текст всех функций не вариант?
Для снижения рисков можно закрыть условной компиляцией.Не вариант заниматься велосипедостроением, если можно было бы заполнять plsql_trace_events.proc_params при включенной pl/sql trace.
...
Рейтинг: 0 / 0
Расширенная инфа при ошибке
    #39630060
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbms_photoshopandrey_anonymousпропущено...
Автоматизировать добавление вызова логгера для "всех параметров" в текст всех функций не вариант?
Не вариант заниматься велосипедостроением, если можно было бы
Если бы у бабушки был, то бабушка была бы дедушкой. Точка (c)
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Расширенная инфа при ошибке
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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