Создание триггера для запуска только при создании новой таблицы
Я знаю, что могу использовать это для создания триггера создания 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, которая запустила триггер.