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');

數據庫里面的字段自動增加了~~

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM