您好,欢迎访问一九零五行业门户网

Oracle触发器查询统计本表

oracle触发器查询统计本表,这次由于项目需要,实际动手演练了一把,达到了需要的效果,大致是插入数据后,统计表内和当前插入数
oracle触发器查询统计本表
这次由于项目需要,实际动手演练了一把,达到了需要的效果,大致是插入数据后,,统计表内和当前插入数据时间相同的个数。
采用行级触发器+语句级触发器。
--包
  create or replace package updatecase as
  type t_date is table of date index by binary_integer;
  v_updatetime t_date;
  v_row  binary_integer := 0;
  end;
--行级触发器
  create or replace trigger tri_student_row
  after insert or update or delete
  on student
  for each row
begin
  updatecase.v_row  :=  updatecase.v_row + 1;
  if deleting  then
    updatecase.v_updatetime(updatecase.v_row) := :old.createtime;
  else
  updatecase.v_updatetime(updatecase.v_row) := :new.createtime;
  end if;
end;
--语句级触发器
create or replace trigger tri_student
  after insert or update or delete on student
declare
  studentcount number(38,5);
begin
  for v_loop in 1 .. updatecase.v_row loop
    select count(*)
      into studentcount from student t
    where t.createtime = updatecase.v_updatetime(v_loop);
    insert into personcount(comedate,count)values(updatecase.v_updatetime(v_loop),studentcount);
  end loop;
  updatecase.v_row := 0;
end;
其它类似信息

推荐信息