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

Я знаю, что могу использовать это для создания триггера создания DDL;

CREATE OR REPLACE TRIGGER 
  create_table_trigger
  AFTER CREATE ON SCHEMA
DECLARE
BEGIN
END;

Проблема в том, что этот триггер будет работать на DDL, таких как "Создать последовательность"; Как я могу выполнить это только для DDL "Создать таблицу"?

1 ответ

Решение
CREATE OR REPLACE TRIGGER 
  create_table_trigger
  AFTER CREATE ON SCHEMA
BEGIN
  IF SYS.DICTIONARY_OBJ_TYPE = 'TABLE' THEN
      ....
END;

Список атрибутов EVENT см. На этой странице.
http://ist.marshall.edu/ist480adbp/plsql_triggers.html (ссылка не работает)

Насколько я знаю, dictionary_obj_type является одним из TABLE|SEQUENCE|PROCEDURE|INDEX|FUNCTION|TYPE|PACKAGE

И dictionary_obj_name это просто имя таблицы / sequence / proc / etc.

  • dictionary_obj_type Возвращает тип объекта словаря, для которого произошла операция DDL, которая запустила триггер.
  • dictionary_obj_name Возвращает имя объекта словаря, для которого произошла операция DDL, которая запустила триггер.
Другие вопросы по тегам