我想知道声明AUTONOMOUS_TRANSACTION
是否意味着规则操作在事件事务INSERT on tab
结束后开始(AKA触发事务成功COMMIT
)。
我正在使用Oracle DB 11.2
这里我添加了触发器:
CREATE OR REPLACE TRIGGER rule1
AFTER INSERT ON tab
FOR EACH ROW
DECLARE
PRAGMA AUTONOMOUS_TRANSACTION;
BEGIN
EXECUTE IMMEDIATE ('
ALTER TABLE vert_strukt
ADD '||:NEW.name||' VARCHAR2(40) ');
INSERT INTO resulted (name_unique)
VALUES (:NEW.name);
COMMIT;
END;
答案 0 :(得分:0)
我建议您使用存储过程来执行此操作。此外,触发器中不允许任何事务控制语句。 ROLLBACK , COMMIT 和 SAVEPOINT 无法使用。