俺一直用的是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
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
解决方案 »
- 对plsql存过中EXECUTE IMMEDIATE的疑问
- 求救,如何知道oracle中的表的字段的属性?
- 求sql基础或sql练习书籍
- Oracle中用什么从数据库中获取数据?
- oracle中插入null值
- Oracle 高级复制更换IP后复制关系失败!(问题已详细描述,工程上点出现的问题,急!!!在线等待)
- 修改表数据问题.在线等,谢谢.
- 有关于系统中一些状态、类型字段这样来设计有道理吗?值得推荐吗?大家来看看
- 各位,我是新手,请指点如何得到某些字段的和?
- 怎样才能知道连接的是那个库呢?
- PL/SQL问题 帮帮忙啊 在线等
- 在oracle中的java sources中写的java程序,在用到sun.net.ftp.ftpClient里的nameList()方法时告诉无些方法,应该怎么做
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;
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;
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;