【点击:】
阿木伯 著
|
快照和触发子结合使用的例子 |
|
- 软件环境:
1、Windows NT4.0+ORACLE 8.0.4
2、ORACLE安装路径为:C:\ORANT
- 需求说明:
大型商场、超市中,都会有计算机管理系统,很多都用到了Oracle数据库,
此行业中有一个商品库存管理的问题,因为商品种类特别多(超过10万种),
一般库存表中记载的是只是当日库存,那么如何记录历史库存呢?
- 实现方法:
SQL*Plus中
create table 当前库存表(
spbm char(6), --商品编码
kcsl number --库存数量
);
create table 历史库存表(
rq char(8), --日期
spbm char(6), --商品编码
kcsl number --库存数量
);
drop snapshot 计算快照;
create snapshot 计算快照 refresh next round(sysdate+0.5)+116/144
as
select * from dual;
--每天晚19:20执行,这个快照什么也不做,只是为了触发下面的触发子,因为在这个快照刷新的时候,有新记录产生
create or replace trigger 记录历史库存触发子 before insert on snap$_计算快照 for each row
begin
insert into 历史库存表(rq,spbm,kcsl)
select to_char(sysdate,'yyyymmdd'),spbm,kcsl from 当前库存表;
exception when others then
raise_application_error(-10000,'不能记录历史库存');
end;
/
以上只是一种方法,主要目的是介绍快照和触发器结合使用的方法。
|
【最后更新:】 |
|