ORACLE通過JOB每天重置序列

2021-10-01 17:08:39 字數 1075 閱讀 6009

場景:某個業務表單裡有個合同編號,需求要求是合同類別+年月日+流水號,流水號需要每天重置,於是就用上了oracle裡的序列通過job每天進行重置。

1.建立序列

-- create sequence 

create sequence fotc_relocate_projectcode_seq

minvalue 0

maxvalue 999999999

start with 1

increment by 1

cache 10;

2.建立重置序列儲存過程

create or replace procedure proc_seq_reset(v_seqname varchar2) as n number(20);

tsql varchar2(100);

begin

execute immediate 'select '||v_seqname||'.nextval from dual' into n;

n:=-(n);

tsql:='alter sequence '||v_seqname||' increment by '|| n;

execute immediate tsql;

execute immediate 'select '||v_seqname||'.nextval from dual' into n;

tsql:='alter sequence '||v_seqname||' increment by 1';

execute immediate tsql;

end proc_seq_reset;

3.建立job(每天凌晨0點定時執行)

declare job number; 

begin

dbms_job.submit(job,'proc_seq_reset(''fotc_relocate_projectcode_seq'');',sysdate,'trunc(sysdate+1)');

commit;

end;

oracle 強制停止job

一 溫柔的方法 1 檢視所有job select from dba jobs 2 檢視正在執行的job select from dba jobs running 3 根據sid查出對應的session select sid,serial from v session where sid sid 4 ...

關於oracle 定時JOB

今天在oracle建定時任務 像我這麼高階,用圖形使用者介面不好吧,所以我決定寫個sql begin sys.dbms job.submit job job,what ext udticket by day item p sysdate next date to date 11 04 2017 02...

oracle 建立job 語句

declare job id pls integer begin sys.dbms job.submit job job id,what prc matching 需要執行的方法 next date sysdate,執行job的時間 interval trunc sysdate 1 6 24 重新執...