小编典典

创建一个仅在创建新表时才运行的触发器

sql

我知道我可以使用它来创建DDL创建触发器;

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

问题在于,该触发器将在“创建序列”之类的DDL上运行;如何仅对“创建表” DDL执行此操作?


阅读 201

收藏
2021-05-05

共1个答案

小编典典

CREATE OR REPLACE TRIGGER
create_table_trigger
AFTER CREATE ON SCHEMA
BEGIN
IF SYS.DICTIONARY_OBJ_TYPE = ‘TABLE’ THEN
....
END;

据我所知,dictionary_obj_type是TABLE | SEQUENCE | PROCEDURE | INDEX | FUNCTION |
TYPE | PACKAGE之一

而dictionary_obj_name只是表/序列/ proc / etc的名称。

  • dictionary_obj_type 返回在其上触发触发器的DDL操作发生的字典对象的类型。
  • dictionary_obj_name 返回在其上触发触发器的DDL操作发生的词典对象的名称。
2021-05-05