俺一直用的是SQL SERVER没有用过ORACLE,所以还忘各位高手能够出手相助,小弟在此先谢谢了!!!!!!!!!
trigger如下:CREATE  trigger trig_en_0001_prnmsr_add
on en_0001_prnmsr after insert 
as
declare @entp char(2)
declare @ennmcd char(12)
DECLARE @i int
declare @rows int
set @i=0
set @rows=@@rowcount
if @rows=0 --no rows inserted,exit tigger
 return
select @entp=entp,@ennmcd=ennmcd  from inserted
BEGIN
--RIVER 河流 
if @entp = 'A'
insert into en_0100_rv (ennmcd) values (@ennmcd) 
--RESERVOIR 水库
if @entp = 'B'
insert into en_0200_rs (ennmcd) values (@ennmcd) 
--CONTROL STATION 控制站
if @entp = 'C'
insert into en_0300_cnst (ennmcd) values (@ennmcd) 
--DIKE 堤防
if @entp = 'D'
insert into en_0400_dike (ennmcd) values (@ennmcd) 
--SLUICE 水闸
if @entp = 'K'
insert into en_0900_sluice (ennmcd) values (@ennmcd) 
--Surmounts river 桥梁
if @entp = 'M'
insert into en_1000_strvpr (ennmcd) values (@ennmcd) 
--Puts on the dike building 穿堤建筑物
if @entp = 'P'
insert into en_1200_plbncn (ennmcd) values (@ennmcd) 
--Mechanical and electrical irrigation station泵站
if @entp = 'J'
insert into en_1500_meidsbi (ennmcd) values (@ennmcd) 
--城市防洪(city propection flood)
if @entp = 'W'
insert into en_1300_ctprflpr (ennmcd) values (@ennmcd) 
--险点险段代码(danger point danger Section code ) 
if @entp = 'V'
insert into en_1400_dnpndnsccd (ennmcd) values (@ennmcd) 
--灌区(irsc ) 
if @entp = 'I'
insert into [1800_irsc] (ennmcd) values (@ennmcd) 
end

解决方案 »

  1.   

    给一个让你做为参考:
    CREATE OR REPLACE
    Procedure Pro_Import_Epiboly_Siszh
    ( Vi_Original_Fact_No   In      Odrm.Fact_No%Type,      --原厂别
      Vi_Original_Odr_No    In     Odrm.Fact_Odr_No%Type ,  --原订单
      Vi_Into_Fact_No       In     Odrm.Fact_No%Type,       --接外包厂别
      Vi_Yn                 In     char            --是否删除接外包厂的条码
    )                                              --0:不处理1:删除後新增2:新增
    ---取珠海区的发外包资料给接外包厂别      Better.Chen      2005/03/14
    Is
         Vc_Model_Name      Modelm.Model_Name%Type ;
         Vc_Style_No        Stylem.Style_No %Type ;
         Vc_Max_No          Modelm.Model_NO%Type ;
    Begin   Begin
         Select Odrm.Style_No,Stylem.Model_Name
           Into Vc_Style_No,Vc_Model_Name
           From Odrm@siszh, Stylem@siszh
          Where Odrm.Fact_No  = Stylem.Fact_No
            And Odrm.Style_No = Stylem.Style_No
            And Odrm.Fact_No     = Vi_Original_Fact_No
            And Odrm.fact_Odr_No = Vi_Original_Odr_No;
       Exception
          When Others Then      
          Raise_Application_Error(-20002,'来源订单查无相关型体型号资料!');   
       End;   
       --------------------------------------------------------------------
       For  Rec_Modelm   In  ( Select  *  
                                 From Modelm@siszh
                                Where Fact_No    = Vi_Original_Fact_No
                                  And Model_Name = Vc_Model_Name  ) 
       Loop
                  Update Modelm
                     Set Sty_Roll = Rec_Modelm.Sty_Roll,
                         Cust_No = Rec_Modelm.Cust_No,
                         Style_Mark = Rec_Modelm.Style_Mark,
                         Size_Mark = Rec_Modelm.Size_Mark,
                         Genus_No = Rec_Modelm.Genus_No,
                         Yymm = Rec_Modelm.Yymm,
                         List_No = Rec_Modelm.List_No,
                         Brand_No = Rec_Modelm.Brand_no
                   Where Fact_No    = Vi_Into_Fact_No
                     And Model_Name = Rec_Modelm.model_name;
                  If Sql%Notfound  Then 
                     Begin
                    Select TO_Char(To_Number(Nvl(Max(Trim(Model_No)),'0'))+1,'000000')
                      Into Vc_Max_No
                      From Modelm
                     Where Fact_No = Vi_Into_Fact_No ;
                 Exception
                      When Others Then
                           Vc_Max_No :='000001';
                       End;
      

  2.   

    Insert Into Modelm ( Fact_No, Model_Name, Sty_Roll,
                                           First_Date, Model_No, Cust_No,
                                           Style_Mark, Size_Mark, Model_Price,
                                           Genus_No, Yymm, List_No,
                                           Brand_No, Matm_Percent )
                                  Values ( Vi_Into_Fact_No, Rec_Modelm.Model_Name, Rec_Modelm.Sty_Roll,
                                           Rec_Modelm.First_Date, Vc_Max_No, Rec_Modelm.Cust_No,
                                           Rec_Modelm.Style_Mark, Rec_Modelm.Size_Mark, Rec_Modelm.Model_Price,
                                           Rec_Modelm.Genus_No, Rec_Modelm.Yymm, Rec_Modelm.List_No,
                                           Rec_Modelm.Brand_No, Rec_Modelm.Matm_Percent );
                 End If;
       End Loop; 
       -------------------------------------------------------------------- 
       For  Rec_Stylem   In  ( Select  *  
                                 From Stylem@siszh
                                Where Fact_No = Vi_Original_Fact_No
                                  And style_no = Vc_style_no  ) 
       Loop
            Update Stylem
               Set Artic_No = Rec_StyleM.Artic_No ,
                   Model_Name = Rec_StyleM.Model_Name , 
                   Mold_No = Rec_StyleM.Mold_No , 
                   Gender = Rec_StyleM.Gender ,
                   Last_No = Rec_StyleM.Last_No , 
                   Style_Engcolor = Rec_StyleM.Style_Engcolor , 
                   Style_Color = Rec_StyleM.Style_Color ,
                   Cn_Style_Color = Rec_StyleM.Cn_Style_Color , 
                   Sol_Color = Rec_StyleM.Sol_Color , 
                   Brand_No = Rec_StyleM.Brand_No ,
                   Price_M = Rec_StyleM.Price_M , 
                   Price_D = Rec_StyleM.Price_D , 
                   Dist_Size = Rec_StyleM.Dist_Size ,
                   D_Col_Cn = Rec_StyleM.D_Col_Cn , 
                   D_Col_En = Rec_StyleM.D_Col_En , 
                   Mat_Type = Rec_StyleM.Mat_Type ,
                   Mod_Type = Rec_StyleM.Mod_Type , 
                   Obj_Type = Rec_StyleM.Obj_Type , 
                   Cate_No = Rec_StyleM.Cate_No ,
                   Pack_Item = Rec_StyleM.Pack_Item , 
                   Odr_Num = Rec_StyleM.Odr_Num , 
                   Yymm = Rec_StyleM.Yymm ,
                   No_Color = Rec_StyleM.No_Color , 
                   Last_No_T = Rec_StyleM.Last_No_T , 
                   Last_No_Sizemk = Rec_StyleM.Last_No_Sizemk ,
                   Last_No_T_Sizemk = Rec_StyleM.Last_No_T_Sizemk , 
                   Pro_Days = Rec_StyleM.Pro_Days 
             Where Fact_No  = Vi_Into_Fact_No
               And Style_No = Rec_StyleM.Style_No;
         If Sql%Notfound  Then 
            Insert Into  Stylem ( Fact_No, Style_No, Artic_No,
                                  Model_Name, Mold_No, Gender,
                                  Last_No, Style_Engcolor, Style_Color,
                                  Cn_Style_Color, Sol_Color, Brand_No,
                                  Price_M, Price_D, Dist_Size,
                                  D_Col_Cn, D_Col_En, Mat_Type,
                                  Mod_Type, Obj_Type, Cate_No,
                                  Pack_Item, Odr_Num, Yymm,
                                  No_Color, Last_No_T, Last_No_Sizemk,
                                  Last_No_T_Sizemk, Pro_Days )  
                         Values ( Vi_Into_Fact_No, Rec_Stylem.Style_No, Rec_Stylem.Artic_No,
                                  Rec_Stylem.Model_Name, Rec_Stylem.Mold_No, Rec_Stylem.Gender,
                                  Rec_Stylem.Last_No, Rec_Stylem.Style_Engcolor, Rec_Stylem.Style_Color,
                                  Rec_Stylem.Cn_Style_Color, Rec_Stylem.Sol_Color, Rec_Stylem.Brand_No,
                                  Rec_Stylem.Price_M, Rec_Stylem.Price_D, Rec_Stylem.Dist_Size,
                                  Rec_Stylem.D_Col_Cn, Rec_Stylem.D_Col_En, Rec_Stylem.Mat_Type,
                                  Rec_Stylem.Mod_Type, Rec_Stylem.Obj_Type, Rec_Stylem.Cate_No,
                                  Rec_Stylem.Pack_Item, Rec_Stylem.Odr_Num, Rec_Stylem.Yymm,
                                  Rec_Stylem.No_Color, Rec_Stylem.Last_No_T, Rec_Stylem.Last_No_Sizemk,
                                  Rec_Stylem.Last_No_T_Sizemk, Rec_Stylem.Pro_Days );        End If;
       End Loop;
      

  3.   

    --------------------------------------------------------------------
       For Rec_odrm  In ( Select  *
                            From Odrm@siszh
                           Where Fact_No             =  Vi_Original_Fact_No
                             And Fact_Odr_No         =  Vi_Original_Odr_No
                             And Outwork_Factory_No  =  Vi_Into_Fact_No    )
       Loop
                Update Odrm
                   Set Custom_No =Rec_odrm.Custom_No,         
                       Style_No =Rec_odrm.Style_No,   
                       Po_No= Rec_odrm.Po_No,     
                       Odr_Classi=Rec_odrm.Odr_Classi,   
                       Cust_Odr_No=Rec_odrm.Cust_Odr_No,  
                       Artic_No=Rec_odrm.Artic_No,  
                       Cust_Req_Date= Rec_odrm.Cust_Req_Date,  
                       Lc_No=Rec_odrm.Lc_No,
                       Cust_Plan_Date=Rec_odrm.Cust_Plan_Date,
                       Rev_Odr_Date=Rec_odrm.Rev_Odr_Date,
                       F_Cfm_Date=Rec_odrm.F_Cfm_Date,
                       L_Cfm_Date=Rec_odrm.L_Cfm_Date,
                       Size_Kind=Rec_odrm.Size_Kind,
                       Odr_Qty=Rec_odrm.Odr_Qty,
                       Ctn_Pair=Rec_odrm.Ctn_Pair,
                       Arr_Ins_Date=Rec_odrm.Arr_Ins_Date,
                       Act_Ins_Date=Rec_odrm.Act_Ins_Date,
                       Ship_Date=Rec_odrm.Ship_Date,
                       Cancel_Date=Rec_odrm.Cancel_Date,
                       Odr_Dist_Country=Rec_odrm.Odr_Dist_Country,
                       Odr_Yymm=Rec_odrm.Odr_Yymm,
                       Odr_Kind='9',-------------------------
                       Odr_Type='9',--------------------------
                       Exgo_Mk=Rec_odrm.Exgo_Mk,
                       Ship_Qty=Rec_odrm.Ship_Qty,
                       Pro_Week=Rec_odrm.Pro_Week,
                       Bar_Print_Mark=Rec_odrm.Bar_Print_Mark,
                       Shoe_Kind= Rec_odrm.Shoe_Kind,
                       Description=Rec_odrm.Description,
                       Etc_Date=Rec_odrm.Etc_Date,
                       Bar_Print_Markd=Rec_odrm.Bar_Print_Markd,
                       Model_Name=Rec_odrm.Model_Name,
                       Factory_Code=Vi_Into_Fact_No,--------------------
                       Odr_Status=Rec_odrm.Odr_Status,
                       Custom_Seq=Rec_odrm.Custom_Seq,
                       Shoe_Category=Rec_odrm.Shoe_Category,
                       Ori_Factory_No=Rec_odrm.Ori_Factory_No,
                       Prod_Factory=Rec_odrm.Prod_Factory,
                       Purplan_Date=Rec_odrm.Purplan_Date,
                       Odr_Amt=Rec_odrm.Odr_Amt,
                       Odr_Unit_Memo=Rec_odrm.Odr_Unit_Memo,
                       Mainmat_Add_Rate=Rec_odrm.Mainmat_Add_Rate,
                       Submat_Add_Rate=Rec_odrm.Submat_Add_Rate,
                       Ship_Mk=Rec_odrm.Ship_Mk,
                       Ft_Type=Rec_odrm.Ft_Type,
                       Actins_Qty=Rec_odrm.Actins_Qty,
                       Modify_User=Rec_odrm.Modify_User,
                       Modify_Date=Rec_odrm.Modify_Date,
                       Exp_Date=Rec_odrm.Exp_Date,
                       Class_Mk=Rec_odrm.Class_Mk,
                       Etx_Code=Rec_odrm.Etx_Code,
                       Class_Odr_No=Rec_odrm.Class_Odr_No,
                       Pur_Fact_No=Rec_odrm.Pur_Fact_No        
                 Where Fact_No = Vi_Into_Fact_No
                   And Fact_Odr_No = Rec_Odrm.Fact_Odr_No ;
              If   Sql%NotFound   Then
                   Insert Into Odrm (  Fact_No , Fact_Odr_No, Custom_No,         
                                       Style_No,Po_No, Odr_Classi,  
                                       Cust_Odr_No,Artic_No,   
                                       Cust_Req_Date, Lc_No, Cust_Plan_Date,
                                       Rev_Odr_Date, F_Cfm_Date, L_Cfm_Date,
                                       Size_Kind, Odr_Qty, Ctn_Pair,
                                       Arr_Ins_Date, Act_Ins_Date, Ship_Date,
                                       Cancel_Date,Odr_Dist_Country,Odr_Yymm,
                                       Odr_Kind, Odr_Type,Exgo_Mk,
                                       Ship_Qty, Pro_Week, Bar_Print_Mark,
                                       Shoe_Kind, Description, Etc_Date,
                                       Bar_Print_Markd, Model_Name,Factory_Code,
                                       Odr_Status, Custom_Seq, Shoe_Category,
                                       Ori_Factory_No, Prod_Factory, Outwork_Factory_No,
                                       Purplan_Date, Odr_Amt, Odr_Unit_Memo,
                                       Mainmat_Add_Rate, Submat_Add_Rate, Ship_Mk,
                                       Ft_Type, Actins_Qty, Modify_User,
                                       Modify_Date, Exp_Date, Class_Mk,
                                       Etx_Code, Class_Odr_No, Pur_Fact_No )
                             Values (  Vi_Into_Fact_No, Rec_Odrm.Fact_Odr_No, Rec_Odrm.Custom_No,         
                                       Rec_Odrm.Style_No,Rec_Odrm.Po_No, Rec_Odrm.Odr_Classi,  
                                       Rec_Odrm.Cust_Odr_No,Rec_Odrm.Artic_No,   
                                       Rec_Odrm.Cust_Req_Date, Rec_Odrm.Lc_No, Rec_Odrm.Cust_Plan_Date,
                                       Rec_Odrm.Rev_Odr_Date, Rec_Odrm.F_Cfm_Date, Rec_Odrm.L_Cfm_Date,
                                       Rec_Odrm.Size_Kind, Rec_Odrm.Odr_Qty, Rec_Odrm.Ctn_Pair,
                                       Rec_Odrm.Arr_Ins_Date, Rec_Odrm.Act_Ins_Date, Rec_Odrm.Ship_Date,
                                       Rec_Odrm.Cancel_Date,Rec_Odrm.Odr_Dist_Country,Rec_Odrm.Odr_Yymm,
                                       '9','9',Rec_Odrm.Exgo_Mk,
                                       Rec_Odrm.Ship_Qty, Rec_Odrm.Pro_Week, Rec_Odrm.Bar_Print_Mark,
                                       Rec_Odrm.Shoe_Kind, Rec_Odrm.Description, Rec_Odrm.Etc_Date,
                                       Rec_Odrm.Bar_Print_Markd, Rec_Odrm.Model_Name,Vi_Into_Fact_No,
                                       Rec_Odrm.Odr_Status, Rec_Odrm.Custom_Seq, Rec_Odrm.Shoe_Category,
                                       Rec_Odrm.Ori_Factory_No, Rec_Odrm.Prod_Factory, '',
                                       Rec_Odrm.Purplan_Date, Rec_Odrm.Odr_Amt, Rec_Odrm.Odr_Unit_Memo,
                                       Rec_Odrm.Mainmat_Add_Rate, Rec_Odrm.Submat_Add_Rate, Rec_Odrm.Ship_Mk,
                                       Rec_Odrm.Ft_Type, Rec_Odrm.Actins_Qty, Rec_Odrm.Modify_User,
                                       Rec_Odrm.Modify_Date, Rec_Odrm.Exp_Date, Rec_Odrm.Class_Mk,
                                       Rec_Odrm.Etx_Code, Rec_Odrm.Class_Odr_No, Rec_Odrm.Pur_Fact_No) ;
              End If ; 
       End Loop;
      

  4.   

    俺自己搞定了,不过仍然谢谢 hlp912(孤枕難眠)GG,接分!!!!!!!!!!!!!!