当前位置: 代码迷 >> Oracle管理 >> 触发器不得不用一次,就报ORA-04098
  详细解决方案

触发器不得不用一次,就报ORA-04098

热度:136   发布时间:2016-04-24 05:07:57.0
触发器只能用一次,就报ORA-04098
表格
SQL code
id varchar(100),username varchar(100),password varchar(100),isAdmin varchar(1),


序列
SQL code
CREATE SEQUENCE seq_sys_userlist start with 100increment by 1MINVALUE 1MAXVALUE 9999;


触发器
SQL code
create or replace trigger tri_sys_userlist       before insert on t_sys_userlist       for each row       begin       select 'u'||lpad(seq_sys_userlist.nextval,4,'0') into :new.id from dual;      end ;  


执行
SQL code
insert into t_sys_userlist (username,userpassword,isadmin) values('amy','c8837b23ff8aaa8a2dde915473ce0991','0');commit;

就报
ORA-04098:触发器无效且未通过重新验证

------解决方案--------------------
SQL code
--改成这样子,重新译下,应该就可以了:new.id := 'u'||lpad(seq_sys_userlist.nextval,4,'0');