我有一个名为“test”的表,其中有两列:sktest和test2
我想在表上的每个插入中增加SKTEST列,所以我创建了一个序列和一个触发器。
但我的触发语句遇到了一个错误:
CREATE OR REPLACE TRIGGER INCRSK
BEFORE INSERT ON schema.test
FOR EACH ROW
BEGIN
:new.SKTEST := SK_SEQUENCES.NEXTVAL
END
/
当我想从表测试中在列Test2中插入值时:
INSERT ALL
INTO schema.test (test2) values ('10')
INTO schema.test (test2) values ('20')
INTO schema.test (test2) values ('30')
SELECT * FROM dual;
我得到以下错误:
ORA-04098:触发器“user.incrsk”无效,重新验证失败
所以我用下面的句子检查了错误:
SELECT * FROM user_errors WHERE type = 'TRIGGER' AND name = 'INCRSK'
它显示了这一点:
PLS-00103:遇到符号“end”时,应为以下之一:。(*/ETC)
编辑
感谢@马克西姆波洛诺夫!