“orcal中的触发器用应用程序执行生成”,什么意思?

解决方案 »

  1.   

    应用程序不是orcal中的。是我门的安装程序
    所有的sql语句在pl/sql中执行都没问题,记录能正常插入。
    但用安装程序执行sql语句的时候能生成触发器但触发器无效,所以记录也插入不进去。
      

  2.   

    try:
     ALTER TRIGGER trigger_name  ENABLE 
      

  3.   

    还是无效。
    不知道具体是什么原因造成的?我怀疑是他们的安装程序中执行我是sql语句是时候发生了什么问题,还是他们不能像执行一个生成表的语句一样执行生成一个触发器的语句,反正具体的方法我也不知道到底是怎么回事。目前的现象就是:
       所有的语句在我们的sql/plus中执行都是十分的正常,就是到他们的程序中执行的时候就是触发器创建成功之后,不能用,状态就是invalid。可是用他们的程序生成的表是正常的。就是我们在插入记录的时候,发现触发器是无效的。请各位大哥告知具体的原因。
      

  4.   

    表肯定是建了。
    我的顺序是这样的。
    先建表,然后在建触发器,再插入记录。
    在pl/sql命令行执行一点问题都没有。
    而用安装程序安顺序执行slq命令生成表没问题,但生成的触发器现实无效。记录当然也插不进去了,我的插入语句会触发我的触发器,因为触发器无效,所以记录插不进去。
    现在已经好几天了,问题一直没有解决。
      

  5.   

    问题出在   
    create or replace trigger trig_01
    INSTEAD OF insert on a[表]
    begin
    update b[表] set b.kkk[字段]=(select count(*) from a );
    end;                                               *
    换成
    create or replace trigger njjjhb_01 
    INSTEAD OF insert on a[表]
    begin
    update b[表] set b.kkk[字段]=(select count(*) from b );
    end;                                               *
    便 ok  ;借用 ==========  ============
    : beckhambobo(beckham) ( ) 信誉:151  说
    这样吧,建对应视图,做一视图的触发器:
    create view v_njjjhb as select * from njjjhb;create or replace trigger njjjhb_01 
    INSTEAD OF insert on v_njjjhb 
    begin 
         update njjjhb set 
         xmztz=xmztz+:new.xmztz 
         snljwc=snljwc+:new.snljwc 
         snjz=snjz+:new.snjz 
         snjzzj=snjzzj+:new.snjzzj 
         bnxz=bnxz+:new.bnxz 
         bnwc=bnwc+:new.bnwc 
         where pk=:new.parent; 
    end; 
    其它也相应修改,以后所有插入就对v_njjjhb进行