当前位置: 首页 > 面试题库 >

触发错误ORA-04092 ORA-04088

冯嘉珍
2023-03-14
问题内容

我创建了一个触发器,如下所示:

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;

我正在尝试在Trigger_1中插入一行

INSERT INTO trigger_1(IDENTIFIER,NAME)
VALUES('1234567','Vijay');

它给了我错误:

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'

谁能帮忙吗?


问题答案:

只需删除

COMMIT;

从触发代码。在正在进行的事务中触发执行,因此您无法进行单独的提交。提交事务后,您在trigger_2中的插入也将提交。



 类似资料:
  • 问题内容: 好吧,我已经研究并没有找到以下问题的解决方法`’SQL Error (1442): Can not update table’ messages’ in stored function / trigger because it is already used by statement Which invoked this stored function / trigger.`` 我的触

  • void trigger_error(string error_msg, [int level]) This function can be used to output an error message using Smarty. level parameter can be one of the values used for trigger_error() PHP function, i.e

  • 我做了一些研究,有一个建议可以使用双重 但是现在我得到了ORA-06502/ORA-06512错误: ORA-06502:PL/SQL:erreur numérique ou erreur sur une valeur ORA-06512:àsys.xmltype“,ligne 272 ORA-06512:àligne 1 06502。00000-“PL/SQL:数值或值错误%s” *原因:出现算

  • 我创建了触发器:--drop trigger t_update_orders_gross

  • 嗨,我正在将我的所有表从一个数据库导入到另一个数据库,但不知何故,触发器没有被导入。使用MySQL5.6。所以我试图从以前的数据库中复制触发器语句来创建当前数据库中的触发器。分隔符$$ 我在工作台的输出部分中得到的错误 知道我做错了什么吗

  • 我在WordPress数据库中编写了一个MySQL触发器&它给出了一个错误。我的触发器代码如下: 它会给出以下错误消息: 错误 SQL查询:文档 CREATE[DEFINER={user CURRENT_USER}]trigger up_trig AFTER INSERT ON每一行BEGIN DECLARE“选择DISTINCT()INTOFROM其中='panchayat_id'和=new。(