【点击:】 阿木伯 著 |
快照和触发子结合使用的例子 |
|
- 软件环境:
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; / 以上只是一种方法,主要目的是介绍快照和触发器结合使用的方法。
|
【最后更新:】 |
|