這個觸發器為什么不能觸發
CREATE OR REPLACE TRIGGER EF_STANDARD_WORK_T
AFTER INSERT OR UPDATE of standard_work_time ON EF_STANDARD_WORK_HOURS
REFERENCING NEW AS New OLD AS Old
FOR EACH ROW
WHEN (NEW.GROUP_ID IN (18,19,23,25,27))
DECLARE
Partno varchar(20);
standard_time number(8);
CURSOR C_partno(p_model varchar,ss varchar) is select PART_NO from inv_pn where model=trim(p_model) and SUBSTR (part_no, 1, 2)=trim(ss);
BEGIN
if :new.group_id in (18,19,23) then
select sum(standard_work_time) into standard_time from ef_standard_work_hours where model=:new.model and group_id in (18,19,23);
OPEN c_partno(:new.model,'70');
fetch c_partno into partno;
while c_partno%found
loop
insert into ef_standard_work values (ERP_STANDARD_WORK_sequence.nextval,:new.model,partno,standard_time,3,sysdate,sysdate,0);
fetch c_partno into partno;
end loop;
close c_partno;
else
begin
select sum(standard_work_time) into standard_time from ef_standard_work_hours where model=:new.model and group_id in (25,27);
OPEN c_partno(:new.model,'95');
fetch c_partno into partno;
while c_partno%found
loop
insert into ef_standard_work values (ERP_STANDARD_WORK_sequence.nextval,:new.model,partno,standard_time,3,sysdate,sysdate,0);
fetch c_partno into partno;
end loop;
close c_partno;
end;
end if;
EXCEPTION
WHEN OTHERS THEN
null;
END;
AFTER INSERT OR UPDATE of standard_work_time ON EF_STANDARD_WORK_HOURS
REFERENCING NEW AS New OLD AS Old
FOR EACH ROW
WHEN (NEW.GROUP_ID IN (18,19,23,25,27))
DECLARE
Partno varchar(20);
standard_time number(8);
CURSOR C_partno(p_model varchar,ss varchar) is select PART_NO from inv_pn where model=trim(p_model) and SUBSTR (part_no, 1, 2)=trim(ss);
BEGIN
if :new.group_id in (18,19,23) then
select sum(standard_work_time) into standard_time from ef_standard_work_hours where model=:new.model and group_id in (18,19,23);
OPEN c_partno(:new.model,'70');
fetch c_partno into partno;
while c_partno%found
loop
insert into ef_standard_work values (ERP_STANDARD_WORK_sequence.nextval,:new.model,partno,standard_time,3,sysdate,sysdate,0);
fetch c_partno into partno;
end loop;
close c_partno;
else
begin
select sum(standard_work_time) into standard_time from ef_standard_work_hours where model=:new.model and group_id in (25,27);
OPEN c_partno(:new.model,'95');
fetch c_partno into partno;
while c_partno%found
loop
insert into ef_standard_work values (ERP_STANDARD_WORK_sequence.nextval,:new.model,partno,standard_time,3,sysdate,sysdate,0);
fetch c_partno into partno;
end loop;
close c_partno;
end;
end if;
EXCEPTION
WHEN OTHERS THEN
null;
END;
...全文
相关推荐
有关MSSQL触发器资料
有关MSSQLTRIGER 是写基本的资料。只有掌握了基本,才能融会贯通。。。。
数字电路实验五触发器的应用.pdf
数字电路实验五触发器的应用.pdf数字电路实验五触发器的应用.pdf数字电路实验五触发器的应用.pdf数字电路实验五触发器的应用.pdf数字电路实验五触发器的应用.pdf数字电路实验五触发器的应用.pdf数字电路实验五触发器的应用.pdf数字电路实验五触发器的应用.pdf
几种基本触发器之间的转换
触发器按功能分有RS、JK、D、T、T’五种类型,但最常见的集成触发器是JK触发器和D触发器。T、T’触发器没有集成产品,如需要时,可用其他触发器转换成T或T’触发器。JK触发器与D触发器之间的功能也是可以互相转换的。实际生产得出大器多为JK触发器和D触发器,由JK触发器和D触发器可构成其类型的触发器。
Oracle触发器表发生了变化 触发器不能读它的解决方法(必看)
下面小编就为大家带来一篇Oracle触发器表发生了变化 触发器不能读它的解决方法(必看)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
RS触发器和SR触发器
详细讲解了rs触发器的原因。RS触发器和SR触发器


基础和管理

