试试把
update SEND1 set processflag=1 where mobileid=:new.mobileid and content=:new.content;
放到一个新的触发器中,
Create Or Replace Trigger TriggerS1
  After insert on sm for each row
...

解决方案 »

  1.   

    不明白 ORARichard(没钱的日子好难过啊) 说的意思
      

  2.   

    当插入一行数据到SEND1 时,触发操作插入SM一条记录,你是用insert into SM(dest_addr,fee_terminal_id)values(:new.mobileid,:new.servicetype);
    然后你想更新SEND1表上的某字段。我是说你建两个触发器,一个在SEND1上,一个在SM上,
    SEND1上的用insert into SM(dest_addr,fee_terminal_id)values(:new.mobileid,:new.servicetype);SM上的用update SEND1 set processflag=1 where mobileid=:new.mobileid and content=:new.content;
      

  3.   

    直接将:new.processflag:=1不行吗?
      

  4.   

    GerryYang(轻尘)
         update SEND1 set :new.processflag:=1 where mobileid=:new.mobileid and content=:new.content;这样报错的
      

  5.   

    Create Or Replace Trigger TriggerS
      After insert on SEND1 for each row
    begin
      if inserting then
        begin
         insert into SM(dest_addr,fee_terminal_id)values(:new.mobileid,:new.servicetype);     
       end;
      end if;
    end;
    =========================================================================
    Create Or Replace Trigger TriggerSM
      After insert on SM for each row
    begin
      if inserting then
        begin
         update SEND1 set processflag=1 where mobileid=:new.dest_addr and content=:new.content;
       end;
      end if;
    end;这样写是一样的错误呀!!!!!!!!!!!!!!!
      

  6.   

    将语句  update SEND1 set processflag=1 where mobileid=:new.mobileid and content=:new.content;
    改为
    :new.processflag:=1;
      

  7.   

    我比较赞同楼上的方法,但是有个疑问,after insert型的触发器好象不能这么用。
    只有before insert或before update,才能对:new.xxxx进行赋值?!所以说比较好的办法还是ORARichard同学的。这里就要问楼主,到底出现的是什么错误?
      

  8.   

    Create Or Replace Trigger TriggerS
      After insert on SEND1 for each row
    begin
      if inserting then
        begin
         insert into SM(dest_addr,fee_terminal_id)values(:new.mobileid,:new.servicetype);
       end;
      end if;
    end;
    Create Or Replace Trigger TriggerS
      before insert on SEND1 for each row
    begin
      if inserting then
        begin
         select 1 into :new.processflag=1 from dual;
       end;
      end if;
    end;
      

  9.   

    "select 1 into :new.processflag=1 from dual;"是什么意思呀?
      

  10.   

    ORARichard(没钱的日子好难过啊)
        你写的这个是两个同样TriggerS的触发吗?
      

  11.   

    是更新processflag字段为1啊,就是你程序中要求的第二个触发器中
    begin
    if :old.mobileid=:new.mobileid and :old.content=:new.content then
    select 1 into :new.processflag=1 from dual;
    end if;
    end;
      

  12.   

    create or replace trigger ZZ_Trigger_UPDATE_SNEDMESSAGE1
      BEFORE insert on ZZ_SENDMESSAGE1 for each row
    begin
      if :OLD.mobileid=:new.mobileid and :OLD.content=:new.content then
        begin
         select 1 into :new.processflag=1 from dual;
        end;
      end if;
    end;
    /=========================================================
    SQL> SHOW ERROR;
    错误:TRIGGER ZZ_TRIGGER_UPDATE_SNEDMESSAGE1:LINE/COL ERROR
    -------- --------------------------------------------------------------
    4/36     PLS-00103: 出现符号 "="在需要下列之一时:  .(,%fromindicator  SQL>
      

  13.   

    select 1 into :new.processflag from dual;--原句笔误
      

  14.   

    编译是过去了,但是第二个触发器并没有取得效果,我想核实一下,第一个触发器是After insert  ,第二个触发器是BEFORE insert,对吗?我总觉得不理解.另外"select 1 into :new.processflag from dual"并没有将INSERT 表SM的记录在SEND1中置"1",请   ORARichard(没钱的日子好难过啊) 指点.
      

  15.   

    步骤一:当我将记录插入表SEND1后,将触发将记录插入表SM;
    步骤二:当SM表顺利得到记录后,将SEND1表中的该记录的字段processflag由原来的0置1
      

  16.   

    begin
         select 1 into :new.processflag from dual;
       end;就这样应该行了
      

  17.   

    create or replace trigger ZZ_Trigger_UPDATE_SNEDMESSAGE1
      BEFORE insert on ZZ_SENDMESSAGE1 for each row
    begin
         select 1 into :new.processflag=1 from dual;
    end;
    /加上我前面写的第一个
      

  18.   

    create or replace trigger ZZ_Trigger_UPDATE_SNEDMESSAGE1
      BEFORE insert on ZZ_SENDMESSAGE1 for each row
    begin
         select 1 into :new.processflag=1 from dual;
    end;
    /==========================
    这个中间不需要IF条件吗?
      

  19.   

    这个触发器仅仅对insert有效,所以可以不用再加条件去判断inserting or updating...