【发布时间】:2021-10-16 03:50:18
【问题描述】:
我正在尝试创建一个触发器,以便每当在表 1 中更新或删除行时,都会在表 2 中创建其原始数据的副本。sql 如下所示
create or replace trigger TRIG_table_2 BEFORE update or delete ON table_1 REFERENCING NEW AS NEW OLD AS OLD for EACH ROW
BEGIN
INSERT INTO table_2(
id
,value
,date_collected
,patient_id
) VALUES (
:OLD.id
, :OLD.value
, :OLD.date_collected
, :OLD.patient_id
);
END;
但是,当我运行它时,我收到一个错误,说它运行成功但有错误。我检查了 user_errors 表,发现了这个:
PLS-00103: Encountered the symbol "end-of-file" when expecting one of the following:
;
我想这一定是sql终止的错误,但我不知道如何修复它。
【问题讨论】:
-
您应该发布完整的触发代码,准确复制/粘贴。你发的没用,不可能知道有什么问题。
-
在
END;之后加上斜杠(/) -
@Littlefoot 我添加了插入代码。 /应该直接在“END;”之后还是在自己的行后记?
-
你做到了,但是 - 这不是引发错误的代码,因为它是正确编写的。我怎么知道?我测试了,现在。编译好了,没问题。请参阅我发布的答案中的演示。因此,再次:复制/粘贴报告错误的确切代码。
-
从斜线开始:在它自己的行中。