Nano Hash - криптовалюты, майнинг, программирование

Триггер срабатывания при компиляции тела пакета

У меня есть тело пакета, которое регулярно обновляется. Мне нужно хранить несколько записей (имя_пользователя, время, несколько других данных) в таблице всякий раз, когда это тело компилируется.

Есть ли способ создать триггер, который будет вставлять данные в таблицу при компиляции тела пакета?

29.10.2015

  • Вы можете добавить несколько строк в скрипт, который запускает компиляцию. 29.10.2015
  • Я использую SQLDeveloper, поэтому не знаю, где искать скрипт, запускающий компиляцию. 29.10.2015
  • Мне кажется, ваш вопрос предполагает какой-то автоматизированный процесс, который вы хотели зарегистрировать. 29.10.2015
  • Всякий раз, когда компилируется тело пакета, я хочу хранить немного информации в таблице. Это мой вопрос. 29.10.2015

Ответы:


1

Вы можете создать триггер AFTER CREATE в своей схеме. Он будет срабатывать после создания каждого объекта схемы, но вы можете ограничить то, что вы регистрируете, используя такие функции, как ora_dict_obj_name.

Посмотрите здесь, чтобы узнать, какие функции действительно доступны. для AFTER CREATE триггеров.

Пример триггера может быть:

create table log_test (event_dt date, event_text varchar2(100));

create or replace trigger test_pkg_alter_log_trg
after create on <YOUR_USER>.schema
begin
  insert into log_test(event_dt, event_text)
    values (sysdate, ora_dict_obj_name);
end;

Создание такого триггера добавит накладные расходы на любое действие CREATE, а не только на перекомпиляцию вашего пакета. Следует оценить, оправдывают ли накладные расходы ваши потребности. Oracle уже поставляется с большинством (всеми?) регистрируемыми событиями, поэтому я предлагаю вам также изучить, например, представление DBA_AUDIT_TRAIL (события action in (94, 97, 95, 98)), чтобы проверить, можно ли его использовать для ваших целей. Полный список действий в этом представлении можно получить по select * from audit_actions.

29.10.2015
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

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

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..