2013-03-08 2 views
0

Версия Oracle: 10g У меня есть хранимая процедура, я хочу знать, сколько раз моя хранимая процедура выполнялась. Успешно это или нет?Сведения о журнале хранимой процедуры

+0

Я не верю, что в этом есть что-то, что могло бы сделать это. Что делает SP? Не удалось ли изменить дату в таблице после ее запуска? В качестве альтернативы, если это SP технического обслуживания, вы можете подумать о том, чтобы настроить его как работу, поскольку я подозреваю, что это запишет некоторую историю. –

ответ

3

Oracle не сохраняет эту информацию по умолчанию.

Вы можете использовать оператор AUDIT включить аудит процедурных вызовов, с помощью аудита EXECUTE PROCEDURE:

audit execute procedure on my_stored_proc; 

(где my_stored_proc может быть пакет или любой другой). Вы должны иметь соответствующие системные привилегии для вещей AUDIT, даже если это ваши вещи. Это связано с тем, что аудит является накладными расходами, а доступ к самому аудиторскому трафику жестко контролируется (по понятным причинам).

Так что АУДИТ, вероятно, не то, что вы ищете. Кроме того, он не даст вам низкоуровневого материала («Было ли это удачным или нет?»). Это дает вам возможность встраивать приборы в вашу процедуру. Это, как правило, хорошая идея, потому что отладка намного проще с достойной трассировкой.

Oracle не предоставляет для этого встроенную библиотеку (которую я нахожу откровенно удивительной, но там вы идете). Создание собственного регистратора довольно просто. Кроме того, вы можете проверить проект Logger Tyler Muth. Find it here. (Никакие гарантии не подразумеваются или не предназначены)

0

нет способа сделать это в базе данных оракула. Я также потрясен тем, что они не предоставляют пакет, который будет записывать информацию в таблицу для вас. Они могут обеспечить регистрации по умолчанию пакет, который обеспечил следующие колонки

  • USERID
  • Уровень входа
  • Отметка времени
  • Команда

реализовать свой собственный пакет с хранимыми процедурами регистрации.