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

можно через errorstack dump , но это на самый крайний случай
...
Рейтинг: 0 / 0
11.04.2018, 23:18
    #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
12.04.2018, 14:26
    #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
13.04.2018, 06:27
    #39629575
Cheese)))
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расширенная инфа при ошибке
Хотелось бы иметь дамп параметров тем же процессом что бы скинуть в лог, без погружения в трейсы.
Думаю, для самого оракла это было бы не очень сложно и киллер-фича, жаль что нет встроенной функциональности.
...
Рейтинг: 0 / 0
13.04.2018, 09:16
    #39629623
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расширенная инфа при ошибке
Cheese))),

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


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