我現在要寫一個job 使用存盤程序是序列定時歸1,我不手動執行這個job的話 序列查詢CURRVAL還是之前改變過的值,查詢NEXTVAL確實顯示已經歸1了 因為是重新步長后的值 但是查詢CURRVAL沒有顯示為1 有沒有大神 能幫忙解決一下
CREATE OR REPLACE Procedure SEQ_TEST_RESET(SEQ_TEST In Varchar2) Is
n Number(10);
SEQ_TEST_RESET varchar2(100);
Begin
Execute Immediate 'select ' || SEQ_TEST || '.nextval from dual'
Into n;
n:=-(n-1);
Execute Immediate 'alter sequence ' || SEQ_TEST || ' increment by '|| n;
Execute Immediate 'select ' || SEQ_TEST || '.nextval from dual'
Into n;
Execute Immediate 'alter sequence ' || SEQ_TEST || ' increment by 1 ';
End SEQ_TEST_RESET;
這是存盤程序
DECLARE
job NUMBER;
BEGIN
SYS.DBMS_JOB.SUBMIT (
job => job,
what => 'SEQ_TEST_RESET(''SEQ_TEST'');',
next_date => sysdate+1/(24*60),
interval => 'trunc(sysdate,''mi'')+1/(24*60)',
no_parse => FALSE );
SYS.DBMS_OUTPUT.PUT_LINE('Job Number is: ' || to_char(job));
COMMIT;
END;
這是job
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/36520.html
標籤:開發
