我创建了触发器,但它不会将数据移动到另一个表
它成功创建了触发器。它还会截断表,但不会移动数据。
CREATE OR REPLACE TRIGGER test_trigger
BEFORE TRUNCATE ON SCHEMA
BEGIN
IF (ora_sysevent='TRUNCATE' and ora_dict_obj_name='testtab') THEN
INSERT INTO testtab2
SELECT name, id FROM testtab;
END IF;
END test_trigger;
答案 0 :(得分:1)
在其他引用中,您的源表没有带引号的标识符,因此它将以大写形式存储在数据字典等中。Read more in the docs.这意味着您也需要将比较形式也大写:
and ora_dict_obj_name='TESTTAB'
不相关,但是插入语句列出目标列名称是一种好习惯:
INSERT INTO testtab2 (name, id)
SELECT name, id FROM testtab;