a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 195|回复: 0

[综合] Oracle辅导:ORA-04098:触发器无效且未通过重新验证

[复制链接]
发表于 2012-8-4 13:54:49 | 显示全部楼层 |阅读模式
问题) L/ R4 Q" d0 A1 f+ s& }0 m
  1、建树序列
, J) e, J8 }  J  j( w  create sequence T1ID_SEQ
8 n" Q, Q: N, Q: Y" A# f, }# {  minvalue 1
/ z& L0 h6 y% z; ?$ ?% D  maxvalue 999999
( S& C: Y9 u$ q; S& X  start with 1( `$ G# h% j0 D  k
  increment by 1
( P* o  @' ?7 r* Q$ k  cache 20. P: w( Z6 w$ m
  ;
* d/ Z0 ^/ D, o  j6 q- ~  select T1ID_SEQ.nextval from dual;
" Z( o5 C$ j5 C' M3 W  2、建树触发器* V2 N, _+ \% m1 l8 M+ Z+ \; f  v
  create or replace trigger t1id_tr2 N' ?( m- ~: R( S7 B7 O
  before insert on t_cms_article for each row: l, P- F5 j2 U# W9 {
  begin
% X. a& L8 h) M% @; r  select to_char(T1ID_SEQ.nextval) into :new.id from dual;
% [  E1 ^& g" {9 C* y9 j2 D8 i  end t1id_tr;
# Q- Q5 s6 v; q* ?; N# F  //insert 时 有new,update 有old,new ,delete 有old
8 U. d0 ]8 c/ \# w  Q- K  3、执行insert into t_cms_article...select from 时/ A. |2 N" q, B" p
  ORA-04098: 触发器无效且未经由过程年夜头验证
2 I3 `* B: S1 i: z  解决法子:  }  H, b9 ]! S( b, a
  建树触发器有误,虽然起头成功执行了。! _- L' g0 \8 U: X" i" a2 m
  create or replace trigger t1id_tr( J: A! Z+ p) F
  before insert on t_cms_article for each row
- B/ V& o6 b6 H! g0 S  `; T' T  begin2 }- ^) B: v$ I2 V; u
  select to_char(T1ID_SEQ.nextval) into :new.id_ from dual;
* m$ m$ p7 z2 h( O: h. f* ^4 s  end t1id_tr;
) d) z4 q; F# @  t_cms_article 对应insert 的表 , :new.id_ 其中id_为 t_cms_article的一个列
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-5-16 08:18 , Processed in 0.231917 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表