请教一个每天0点重置SEQUENCE的JOB写法

来源:百度知道 编辑:UC知道 时间:2024/06/07 17:40:19
如题,每天0点自动将SEQUENCE重置,或者其他解决方法也可

在oracle中,可以这样做:
1、建立一个存储过程proc_reset_seq负责将SEQUENCE重置,即drop再建立SEQUENCE;记得存储过程不能带任何参数。
2、再用有SYS.DBA_JOBS权限的用户执行:
declare v_jobname NUMBER;
sys.DBMS_JOB.SUBMIT(v_jobname,'proc_reset_seq;',TRUNC(SYSDATE + 1,'DD'),'TRUNC(SYSDATE+1,''DD'') ');

怎么设 Job 的语法我不会,但你要把 Sequence 重置,也就是先 Drop 掉,然后新建一个同名的,并把 START WITH 设置成初始值即可。

比如:

DROP SEQUENCE seq_1;

CREATE SEQUENCE seq_1
START WIHT 1001
INCREMENT BY 1
MAXVALUE 9999
ORDER;

waitfor time '00:00'
seq_1

ok