主题:oracle中的触发器怎么写?
这是一个Sysbase中的触发器移植到orcale中应该怎样改?
create or replace trigger TR_SLSP1_QYMSSQ_MAIN
after update ON wssp.SLSP1_QYMSSQ_MAIN
DECLARE @int_clts number --处理天数
DECLARE @str_swjg varchar2(30) --纳税人所属税务机关
DECLARE @str_clbm varchar2(30) --处理记录的部门
DECLARE @str_sflz varchar2(1) --是否流转
DECLARE @num_ok number --判断类变量
DECLARE @NSRSBH varchar2(30) --纳税人识别号
DECLARE @SLH number(18,0) --受理号
BEGIN
--读取新插入的内容
SELECT @NSRSBH=RTRIM(NSRSBH),@SLH=SLH,@str_sflz=RTRIM(SFLZ) FROM inserted
SELECT @num_ok = count(SLH) FROM LZJL WHERE SLH = @SLH
if @num_ok <> 0 return
--作废记录,不参与流转
if rtrim(@str_sflz) = '2'
begin
return
end
--读取纳税人所属的税务机关
select @num_ok = count(NSR_SWJG_DM) FROM DJ_NSRXX where Rtrim(NSRSBH) = @NSRSBH
if @num_ok = 0
begin
insert into LZJL(SLH,LCBH,JDBH,CWYY,THBM,THRY,THRQ,NSRSBH)
values(@SLH,'slspfirst',0,'系统错误001,没有相应的处理部门或流程','system','system',GETDATE(),@NSRSBH)
return
end
select @str_swjg= Rtrim(NSR_SWJG_DM) FROM DJ_NSRXX where Rtrim(NSRSBH) = @NSRSBH
--读取处理该记录的部门(根据分局)
select @num_ok = count((ZGSWJG)) FROM LCBUMEN where LCBH = 'slspfirst' and LCJDBH = 1 and ZGSWJG like (SUBSTRING
(@str_swjg,1,7) + '%')
if @num_ok = 0
begin
insert into LZJL(SLH,LCBH,JDBH,CWYY,THBM,THRY,THRQ,NSRSBH)
values(@SLH,'slspfirst',0,'系统错误002,没有相应的处理部门或流程','system','system',GETDATE(),@NSRSBH)
return
end
select @str_clbm = RTRIM(ZGSWJG) FROM LCBUMEN where LCBH = 'slspfirst' and LCJDBH = 1 and ZGSWJG like (SUBSTRING
(@str_swjg,1,7) + '%')
--处理天数
select @int_clts=SJXZH from LCJD where LCBH = 'slspfirst' and LCJDBH = 1
--正常流转
if rtrim(@str_sflz) = '1'
begin
--数据转入流转表
insert into LZJL(SLH,LCBH,JDBH,CLBM,TDRQ,ZWCLRQ,CLSFZQ,NSRSBH)
VALUES(@SLH,'slspfirst',1,@str_clbm,GETDATE(),DATEADD(day,@int_clts,GETDATE()),'0',@NSRSBH)
end
--资料不全
if rtrim(@str_sflz) = '3'
begin
--数据转入流转表
insert into LZJL(SLH,LCBH,JDBH,CLBM,CLSFZQ,NSRSBH)
VALUES(@SLH,'slspfirst',1,@str_clbm,'0',@NSRSBH)
end
--数据写入调查表
insert into DCB(SLH,LCBH)
values(@SLH,'slspfirst')
--数据写入基层意见表
insert into JCJYJ(SLH,LCBH)
values(@SLH,'slspfirst')
commit
END
急等!
create or replace trigger TR_SLSP1_QYMSSQ_MAIN
after update ON wssp.SLSP1_QYMSSQ_MAIN
DECLARE @int_clts number --处理天数
DECLARE @str_swjg varchar2(30) --纳税人所属税务机关
DECLARE @str_clbm varchar2(30) --处理记录的部门
DECLARE @str_sflz varchar2(1) --是否流转
DECLARE @num_ok number --判断类变量
DECLARE @NSRSBH varchar2(30) --纳税人识别号
DECLARE @SLH number(18,0) --受理号
BEGIN
--读取新插入的内容
SELECT @NSRSBH=RTRIM(NSRSBH),@SLH=SLH,@str_sflz=RTRIM(SFLZ) FROM inserted
SELECT @num_ok = count(SLH) FROM LZJL WHERE SLH = @SLH
if @num_ok <> 0 return
--作废记录,不参与流转
if rtrim(@str_sflz) = '2'
begin
return
end
--读取纳税人所属的税务机关
select @num_ok = count(NSR_SWJG_DM) FROM DJ_NSRXX where Rtrim(NSRSBH) = @NSRSBH
if @num_ok = 0
begin
insert into LZJL(SLH,LCBH,JDBH,CWYY,THBM,THRY,THRQ,NSRSBH)
values(@SLH,'slspfirst',0,'系统错误001,没有相应的处理部门或流程','system','system',GETDATE(),@NSRSBH)
return
end
select @str_swjg= Rtrim(NSR_SWJG_DM) FROM DJ_NSRXX where Rtrim(NSRSBH) = @NSRSBH
--读取处理该记录的部门(根据分局)
select @num_ok = count((ZGSWJG)) FROM LCBUMEN where LCBH = 'slspfirst' and LCJDBH = 1 and ZGSWJG like (SUBSTRING
(@str_swjg,1,7) + '%')
if @num_ok = 0
begin
insert into LZJL(SLH,LCBH,JDBH,CWYY,THBM,THRY,THRQ,NSRSBH)
values(@SLH,'slspfirst',0,'系统错误002,没有相应的处理部门或流程','system','system',GETDATE(),@NSRSBH)
return
end
select @str_clbm = RTRIM(ZGSWJG) FROM LCBUMEN where LCBH = 'slspfirst' and LCJDBH = 1 and ZGSWJG like (SUBSTRING
(@str_swjg,1,7) + '%')
--处理天数
select @int_clts=SJXZH from LCJD where LCBH = 'slspfirst' and LCJDBH = 1
--正常流转
if rtrim(@str_sflz) = '1'
begin
--数据转入流转表
insert into LZJL(SLH,LCBH,JDBH,CLBM,TDRQ,ZWCLRQ,CLSFZQ,NSRSBH)
VALUES(@SLH,'slspfirst',1,@str_clbm,GETDATE(),DATEADD(day,@int_clts,GETDATE()),'0',@NSRSBH)
end
--资料不全
if rtrim(@str_sflz) = '3'
begin
--数据转入流转表
insert into LZJL(SLH,LCBH,JDBH,CLBM,CLSFZQ,NSRSBH)
VALUES(@SLH,'slspfirst',1,@str_clbm,'0',@NSRSBH)
end
--数据写入调查表
insert into DCB(SLH,LCBH)
values(@SLH,'slspfirst')
--数据写入基层意见表
insert into JCJYJ(SLH,LCBH)
values(@SLH,'slspfirst')
commit
END
急等!