DbVisualizer:Oracle触发器,解决ORA-04098: 触发器 'USER.DECTUSERTEST_TRI' 无效且未通过重新验证
我没有用orcal的管理工具,而是用的DbVisualizer 9.5.2,管理数据库。
场景:需要在oracle里面实在自增字段,在网上一搜一堆文档,然后自己就找了一段自己写如下:
drop table userTest;
create table userTest(
id number(10) not null,
name varchar2(20) primary key,
sex varchar2(2)
);
drop sequence userTest_seq;
create sequence userTest_seq
minvalue 1
maxvalue 99999999
increment by 1
start with 1
nocycle
nocache
noorder;
create or replace trigger userTest_tri
before insert on userTest
for each row
BEGIN
SELECT userTest_seq.NEXTVAL INTO :NEW.ID FROM DUAL
// :NEW.ID := NEXT_ID; --:NEW表示新插入的那条记录
// end ;
END;
insert into userTest(name) values ('name');
一运行就抛出下面的错误:
[Code: 4098, SQL State: 42000] ORA-04098: 触发器 'TIANJING.USERTEST_TRI' 无效且未通过重新验证
解决方案:
首先查看该表的触发器:
然后选中查看详情:
查看详情的时候,发现触发器里面有错,然后修改并保存:
好了,然后直接运行:
insert into userTest(name) values ('name');
数据库里面的字段自动增加了~~