我写了个触发器
Create or replace trigger Tri_RDMX_value
after insert  On RDMX
for each row
begin
  update  RDMX
       set (LSH,FHQDH,YWBH,KHDM,KHMC,SPDM,PMGG,BZSL,DW,XDSL,CKRQ,PH,PCH,XQ,CKSL,CW,JS,SHDZ,HTSXRQ,SFZT,PSCS,DYR,DYSJ,CDSD,PSSD,KFDYR,KFDYSJ,KHBZ,BZ)
   =(select LSH,FHQDH,YWBH,KHDM,KHMC,SPDM,PMGG,BZSL,DW,XDSL,CKRQ,PH,PCH,XQ,CKSL,CW,JS,SHDZ,HTSXRQ,SFZT,PSCS,DYR,DYSJ,CDSD,PSSD,KFDYR,KFDYSJ,KHBZ,BZ                                   
      from   CKJL
                                     where YWBH=:new.YWBH);end;往RDMX中插入数据后老是出错,请大侠帮忙看一下,是不是语法错了,谢谢

解决方案 »

  1.   

    SELECT lsh, fhqdh, ywbh, khdm, khmc, spdm, pmgg, bzsl, dw, xdsl,
                         ckrq, ph, pch, xq, cksl, cw, js, shdz, htsxrq, sfzt,
                         pscs, dyr, dysj, cdsd, pssd, kfdyr, kfdysj, khbz, bz
                    FROM ckjl
                   WHERE ywbh = :NEW.ywbh这个得到的值不只一行update操作就会出错了。
      

  2.   

    RDMX表的触发器,里面又更新RDMX表,这在oracle是不允许的(除非用自治事务)
      

  3.   

    如果你要想更改这条数据的话,就直接改写:new.column_name := '  '