powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Логирование в теле процедуры
4 сообщений из 4, страница 1 из 1
Логирование в теле процедуры
    #39428461
luigi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть порядка сотни процедур, вызываются из приложения (вложенных между собой вызовов нет). Встала задача залогировать их работу. Такая конструкция имеет право на существование? (схематично):

Код: 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.
CREATE OR REPLACE PROCEDURE A1
AS 
  R NUMBER(1) := 0;
  I NUMBER(5, 3);

BEGIN
  INSERT INTO LOG_TABLE('BEGIN', ...)
    VALUES(SYSDATE, ...);

  BEGIN
    SAVEPOINT BEGIN_1;

    I := 7 / 2; /* для имитации исключения */
    ....
    /* один-два INSERT/UPDATE на одну/две таблицы */

    EXCEPTION
      WHEN OTHERS THEN
        ROLLBACK TO BEGIN_1;
        R := 1;
        INSERT INTO LOG_TABLE('ERROR', ...)
          VALUES(SYSDATE, ...);
  END;

  INSERT INTO LOG_TABLE('END', ...)
    VALUES(SYSDATE, ...);

  COMMIT;

  IF R <> 0 THEN
    RAISE_APPLICATION_ERROR(- 20000, SQLERRM);
  END IF;

  EXCEPTION
    WHEN OTHERS THEN
      ROLLBACK;
      RAISE_APPLICATION_ERROR(- 20000, SQLERRM);
END A1;



1. Должны фиксироваться факты начала, окончания и ошибки в теле.
2. Помимо фиксации факта ошибки - обработки ее, т.к. процедуры вызываются из приложения, ошибку необходимо вернуть приложению, поэтому накручено с R.

Буду рад любым откликам)
...
Рейтинг: 0 / 0
Логирование в теле процедуры
    #39428466
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
autonomous transaction
...
Рейтинг: 0 / 0
Логирование в теле процедуры
    #39428485
Фотография --Eugene--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вячеслав Любомудровautonomous transactionэто слишком очевидно
...
Рейтинг: 0 / 0
Логирование в теле процедуры
    #39430875
luigi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вячеслав Любомудров,

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


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