概述
create or replace trigger into_demandPlan_trigger
after insert on I_WZ2SC_SHJHZWJ
for each row
declare
v_materielName SCM_WZ_DemandPlan.Materielname%TYPE;
v_plan_uuid SCM_WZ_DemandPlan.Id%TYPE; --唯一编号
v_sysdate SCM_WZ_DemandPlan.Createddate%TYPE; --当前数据库时间
v_plan_unitId SCM_WZ_DemandPlan.Unitid%TYPE; --UnitId,按接收计量单位转换
after insert on I_WZ2SC_SHJHZWJ
for each row
declare
v_materielName SCM_WZ_DemandPlan.Materielname%TYPE;
v_plan_uuid SCM_WZ_DemandPlan.Id%TYPE; --唯一编号
v_sysdate SCM_WZ_DemandPlan.Createddate%TYPE; --当前数据库时间
v_plan_unitId SCM_WZ_DemandPlan.Unitid%TYPE; --UnitId,按接收计量单位转换
逻辑转换 (采购单位流水)
v_plan_storageId SCM_WZ_DemandPlan.storageId%TYPE; --ToStockId,以DHCK作为当
v_plan_storageId SCM_WZ_DemandPlan.storageId%TYPE; --ToStockId,以DHCK作为当
前公司下的业务组织获取业务组织Id作为到货仓库(到货仓库号)
begin
v_materielName := materielName_function('SHTB', :new.CLBH);
select sys_guid() into v_plan_uuid from dual; --自动产生Id
select sysdate into v_sysdate from dual; --获取当前数据库时间
begin
v_materielName := materielName_function('SHTB', :new.CLBH);
select sys_guid() into v_plan_uuid from dual; --自动产生Id
select sysdate into v_sysdate from dual; --获取当前数据库时间
v_plan_unitId := unit_function(to_char(:new.CGDWLS),
'SCM_WZ_UOM',
'SHTB'); --UnitId,按接收计量单位转换逻辑
'SCM_WZ_UOM',
'SHTB'); --UnitId,按接收计量单位转换逻辑
转换(采购单位流水number,packageCode,orgCode)
v_plan_storageId := storage_function('SHTB', to_char(:new.DHCKH)); --
v_plan_storageId := storage_function('SHTB', to_char(:new.DHCKH)); --
orgCode,bizOrgCode
insert into SCM_WZ_DemandPlan
(
--唯一编号,公司,业务组织,数据状态,数据版本,
id,
orgCode,
bizOrgCode,
status,
dataVersion,
--创建公司,创建人(编制人员),建立时间DATE(编制时间),修改人(UPDATE_BY),修改
insert into SCM_WZ_DemandPlan
(
--唯一编号,公司,业务组织,数据状态,数据版本,
id,
orgCode,
bizOrgCode,
status,
dataVersion,
--创建公司,创建人(编制人员),建立时间DATE(编制时间),修改人(UPDATE_BY),修改
时间DATE(更新时间)
createdOrgCode,
creatorCode,
createdDate,
redactorCode,
redateDate,
--直送计划编号,供应商编号,预计送货日期,材料编号,托板数
dDeliveryCode,
vendorCode,
deliverPlanDate,
materielCode,
palletQty,
--数量,采购单位流水(UomDetailEntity unitId),平均量,到货区域,到货仓库号,
deliverQty,
Unitid,
average,
toStockArea,
storageId,
--收料单号,收料单从表流水,计划状态,MQ操作日期,MQ状态
aSNCode,
aSNDetailId,
planStatus,
mQRecordDate,
mQStatus,
--MQ数量,MQ流水号,接收状态,接收数量,执行单位
mQCount,
mQId,
deliverStatus,
deliverQuantity,
impCompany,
--材料名称
materielName)
createdOrgCode,
creatorCode,
createdDate,
redactorCode,
redateDate,
--直送计划编号,供应商编号,预计送货日期,材料编号,托板数
dDeliveryCode,
vendorCode,
deliverPlanDate,
materielCode,
palletQty,
--数量,采购单位流水(UomDetailEntity unitId),平均量,到货区域,到货仓库号,
deliverQty,
Unitid,
average,
toStockArea,
storageId,
--收料单号,收料单从表流水,计划状态,MQ操作日期,MQ状态
aSNCode,
aSNDetailId,
planStatus,
mQRecordDate,
mQStatus,
--MQ数量,MQ流水号,接收状态,接收数量,执行单位
mQCount,
mQId,
deliverStatus,
deliverQuantity,
impCompany,
--材料名称
materielName)
values
(
(
--唯一编号,公司,业务组织,数据状态,数据版本,
v_plan_uuid,
'SHTB',
null,
'20',
1,
----创建公司,创建人(编制人员),建立时间(编制时间 CHAR(14)),修改人
v_plan_uuid,
'SHTB',
null,
'20',
1,
----创建公司,创建人(编制人员),建立时间(编制时间 CHAR(14)),修改人
(UPDATE_BY),修改时间(更新时间 DATE)
'SHTB',
:new.BZRY,
to_date(:new.BZSJ, 'YYYY/MM/DD'),
:new.UPDATE_BY,
:new.UPDATE_DATE,
--直送计划编号,供应商编号,预计送货日期(CHAR(8)),材料编号,托板数
:new.ZSJHBH,
:new.GYSBH,
to_date(:new.YJSHRQ, 'YYYY/MM/DD'),
:new.CLBH,
:new.TBS,
--数量,采购单位流水(NUMBER(12)),平均量,到货区域String(NUMBER(12)),到货仓
'SHTB',
:new.BZRY,
to_date(:new.BZSJ, 'YYYY/MM/DD'),
:new.UPDATE_BY,
:new.UPDATE_DATE,
--直送计划编号,供应商编号,预计送货日期(CHAR(8)),材料编号,托板数
:new.ZSJHBH,
:new.GYSBH,
to_date(:new.YJSHRQ, 'YYYY/MM/DD'),
:new.CLBH,
:new.TBS,
--数量,采购单位流水(NUMBER(12)),平均量,到货区域String(NUMBER(12)),到货仓
库号,
:new.SL,
v_plan_unitId,
:new.PJL,
to_char(:new.DHQY),
v_plan_storageId,
--收料单号,收料单从表流水String(NUMBER(12)),计划状态(状态),MQ操作日期
:new.SL,
v_plan_unitId,
:new.PJL,
to_char(:new.DHQY),
v_plan_storageId,
--收料单号,收料单从表流水String(NUMBER(12)),计划状态(状态),MQ操作日期
(CHAR(4)没法转),MQ状态
:new.SLDH,
to_char(:new.SLCBLS),
:new.ZT,
to_date(:new.MQ_OP, 'YYYY'),
:new.MQ_ST,
--MQ数量String(NUMBER(12)),MQ流水号String(NUMBER(22)),接收状态,接收数量
:new.SLDH,
to_char(:new.SLCBLS),
:new.ZT,
to_date(:new.MQ_OP, 'YYYY'),
:new.MQ_ST,
--MQ数量String(NUMBER(12)),MQ流水号String(NUMBER(22)),接收状态,接收数量
String(NUMBER(12,5)),执行单位
to_char(:new.MQ_COUNT),
to_char(:new.MQ_LSH),
:new.DELIVER_STATUS,
to_char(:new.DELIVER_QUANTITY),
:new.ZXDW,
--材料名称
v_materielName);
end;
这是用oracle10g中创建的触发器,大致就是在I_WZ2SC_SHJHZWJ表执行插入操作后,为
to_char(:new.MQ_COUNT),
to_char(:new.MQ_LSH),
:new.DELIVER_STATUS,
to_char(:new.DELIVER_QUANTITY),
:new.ZXDW,
--材料名称
v_materielName);
end;
这是用oracle10g中创建的触发器,大致就是在I_WZ2SC_SHJHZWJ表执行插入操作后,为
SCM_WZ_DemandPlan这个表中新增一条数据;这应该是简单的 触发器。
建立触发器的一般操作是用
create or replace trigger 触发器名
after insert on 表名//相应表上的操作
for each row
declare //声明变量
v_materielName SCM_WZ_DemandPlan.Materielname%TYPE;//用%TYPE绑定表中的字段
建立触发器的一般操作是用
create or replace trigger 触发器名
after insert on 表名//相应表上的操作
for each row
declare //声明变量
v_materielName SCM_WZ_DemandPlan.Materielname%TYPE;//用%TYPE绑定表中的字段
,指定了变量具有与SCM_WZ_DemandPlan.Materielname中一样的字段类型。
begin
//所要进行的操作
end;
begin
//所要进行的操作
end;
下面是sql server中的触发器
alter trigger trig_transinfo_insert
on transinfo
for insert,update
as
print '开始执行触发器------------------------------'
print '临时表的内容::----------'
select * from inserted
print '-------------------'
declare @type varchar(20)
declare @transmoney money
declare @cardid varchar(20)
set @type=(select transtype from inserted )
set @transmoney=(select transmoney from inserted )
set @cardid=(select cardid from inserted )
print @type +' '+@cardid
if(@type='存入')
begin
update bank set currentmoney=
currentmoney+@transmoney where cardid=@cardid
select * from bank
end
else
begin
update bank set currentmoney=
currentmoney-@transmoney where cardid=@cardid
select * from bank
end
alter trigger trig_transinfo_insert
on transinfo
for insert,update
as
print '开始执行触发器------------------------------'
print '临时表的内容::----------'
select * from inserted
print '-------------------'
declare @type varchar(20)
declare @transmoney money
declare @cardid varchar(20)
set @type=(select transtype from inserted )
set @transmoney=(select transmoney from inserted )
set @cardid=(select cardid from inserted )
print @type +' '+@cardid
if(@type='存入')
begin
update bank set currentmoney=
currentmoney+@transmoney where cardid=@cardid
select * from bank
end
else
begin
update bank set currentmoney=
currentmoney-@transmoney where cardid=@cardid
select * from bank
end
update transinfo set transmoney=500
where cardid='8505 001' and transtype='支取'
print '触发器执行完毕'
go
从上可以看出两者的差别;对于变量的赋值有点区别之外,其他的语句基本上一致;
where cardid='8505 001' and transtype='支取'
print '触发器执行完毕'
go
从上可以看出两者的差别;对于变量的赋值有点区别之外,其他的语句基本上一致;
转载于:https://blog.51cto.com/zhjjzhjj/723754
最后
以上就是发嗲铃铛为你收集整理的简单的触发器的全部内容,希望文章能够帮你解决简单的触发器所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复