Vij*_*jay 1 sql oracle triggers ora-04088
我创建了一个触发器如下:
CREATE OR REPLACE TRIGGER trigger_test
AFTER INSERT ON trigger_1
FOR EACH ROW
DECLARE
t_identifier VARCHAR2(10);
t_name VARCHAR2(20);
BEGIN
t_identifier := (:NEW.IDENTIFIER);
t_name := (:NEW.NAME);
INSERT INTO trigger_2(IDENTIFIER,NAME)VALUES(t_identifier,t_name);
COMMIT;
END;
Run Code Online (Sandbox Code Playgroud)
我想在trigger_1中插入一行
INSERT INTO trigger_1(IDENTIFIER,NAME)
VALUES('1234567','Vijay');
Run Code Online (Sandbox Code Playgroud)
它给了我错误:
ORA-04092: cannot COMMIT in a trigger
ORA-06512: at "LVSDBO46.TRIGGER_TEST", line 8
ORA-04088: error during execution of trigger 'LVSDBO46.TRIGGER_TEST'
Run Code Online (Sandbox Code Playgroud)
你能帮帮忙吗?
只需删除
COMMIT;
Run Code Online (Sandbox Code Playgroud)
来自触发码.触发器在正在进行的事务中执行,因此您无法单独提交.提交事务时,您的trigger_2中的插入也将被提交.
归档时间: |
|
查看次数: |
9008 次 |
最近记录: |