CREATE TRIGGER zljddjb_jd_bljl ON zljddjb_jd
AFTER INSERT
AS
   declare @zrzt varchar(50),@gcbm varchar(50),@da varchar(50),@id varchar(50)
  select @zrzt=zrzt,@gcbm=gcbm,@da=rq,@id=id from inserted
     
   if @zrzt is not null and @zrzt<>''
   begin
       if @zrzt='建设单位'
       select @zrzt=jsdwdwmc from zljddjb where gcbm=@gcbm
       else if @zrzt='勘查单位'
       select @zrzt=kcdwdwmc from zljddjb where gcbm=@gcbm
        else if @zrzt='监理单位'
       select @zrzt=jldwdwmc from zljddjb where gcbm=@gcbm
       else if @zrzt='设计单位'
       select @zrzt=sjdwdwmc from zljddjb where gcbm=@gcbm
       else if @zrzt='施工单位'
       select @zrzt=sgdwdwmc from zljddjb where gcbm=@gcbm
       else if @zrzt='检测单位'
       select @zrzt=jcdwdwmc from zljddjb where gcbm=@gcbm
       else if @zrzt='审图机构'
       select @zrzt=stdwdwmc from zljddjb where gcbm=@gcbm
       else if @zrzt='其它单位'
       begin
       select @zrzt=qtdwdwmc from zljddjb where gcbm=@gcbm
       end
       insert into bljl(rq,bljllx,dwbh,lbid) values (@da,'xcqk',@zrzt,@id)
       end 
上面的用ORACLE怎莫写?
谢谢

解决方案 »

  1.   

    和你的差不多CREATE TRIGGER zljddjb_jd_bljl AFTER INSERT ON zljddjb_jd FOR EACH ROW
    AS
    DECLARE
       定义变量;
       V_ZRZT VARCHAR2(20);
       V_GDDM NUMBER(10);
    BEGIN
         
       V_ZRZT:=:NEW.ZRZT;
       V_GDDM:=:NEW.GDDM;
       .....
       IF V_ZRZT='建设单位'
       begin
           SELECT JSDWDWMC INTO V_ZRZT FROM ZLJDDJB WHERE GDDM=V_GDDM;
       
         .........
       END IF
           insert into bljl(rq,bljllx,dwbh,lbid) values (V_da,'xcqk'V_ZRZT,V_ID)
       end ;
      

  2.   

    DECLARE
       定义变量;
       V_ZRZT VARCHAR2(20);
       V_ZRZT:=NEW.ZRZT;---不同
    begin
       V_GDDM:=:NEW.GDDM;---不同
       if V_ZRZT='建设单位' then---不同
        ----
       elsif ---不同
       ----
       else
       -----
       end;
    end;