斌斌 (给我写信) 原创博文(http://blog.csdn.net/binbinxyz),转载请注明出处!
假设有这样一种情形:从数据库中获取一个五位号码作为当日业务的流水号(当日惟一)
于是设计了一张表用来存储当前号码:
create table TBL_TRADE_SN_INF
(
SN NUMBER default 99999
)
添加存储过程pro_trade_sn_init用以初始化sn号码:
create or replace procedure pro_trade_sn_init is
begin
update tbl_trade_sn_inf set sn=99999;
end pro_trade_sn_init;
添加定时器job_trade_sn用以每天调用存储过程对SN号码进行初始化:
begin
dbms_job.submit(:job_trade_sn, 'pro_trade_sn_init;', sysdate, 'TRUNC(sysdate+1) + 1/24');
--每天24小时,即每天凌晨一点钟运行一次
end;
/
启动该定时器:
begin
dbms_job.run(:job_trade_sn);
end;
/
这样,每天凌晨一点的时候号码会自动初始化。
重要提示:本文纯粹只是为了记录存储过程、定时器的简单使用方式,如有其他设计不当请勿对比参考!