關於定時任務重置序列

2021-08-17 01:17:26 字數 1170 閱讀 5007

前兩天擼**寫了pdf套打,今天發現還有乙個東西沒有實現就是需要重置序列,在每年的1月1日0點0時0分重置序列。雖然超級簡單,但是依然感覺好多坑,不知道是不是oracle版本問題導致的。

首先我找了萬能的度娘,結果度娘給出了好幾個答案,首先是重置序列。

很多大神給出了答案,就是反向生成,然後再設定成1的。但是同樣的**到我這裡就直接報錯了,而且執行那個函式以後序列的增量還變成了負數,完全沒改回來。後來發現加了minvalue 0居然就ok,emmmmmmmm,我也不知道為什麼。好神奇。

以下是我生效的重置序列的**

create or replace procedure seq_wszmkj_reset as

n    number(10);

tsql varchar2(100);

begin

execute immediate 'select sswszm_sequence.nextval from dual'

into n;

n    := -n;

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

execute immediate tsql;

execute immediate 'select sswszm_sequence.nextval from dual'

into n;

tsql := 'alter sequence sswszm_sequence increment by 1 minvalue 0';

execute immediate tsql;

end seq_wszmkj_reset;

其中,我嘗試過把 n    := -n;換成n:=-(n-1)然後也不行,,實在是搞不懂為啥啊,,記錄一下,如果以後我知道為啥了我再改改,不知道就算了。

然後就是那個oracle的job定時任務也是乙個大坑。不過的確有些命令挺好用的,,不然真的是懵逼,比如說

select *from dba_jobs  檢視定時任務,裡面有個next_date就可以看到下次這個定時任務執行的時間了。有時候直接在窗體建立的定時任務裡面的那個下個日期其實不准的。還就就是不知道為啥,在窗體建立了定時任務,裡面的時間引數,好像並不能隨意修改,因為修改了並沒生效,如果需要改定時任務的時間,需要重新建立了,不能在原來的基礎上修改。不知道是我機器的問題還是都是這樣。

防止 crontab 定時任務重複執行

前言 crontab 定時任務很好使用,它的定時是很強硬的,直接跟系統時間打交道,不會去管程式本身執行是否需要時間。舉個栗子 乙個指令碼執行需要 1 小時,使用 crontab 每隔2小時執行一次,一般情況下下次執行指令碼時上次指令碼執行肯定是跑完了的 但是,假如,程式卡住了呢?下次執行時上次指令碼...

ErrorRecovery 之任務重置

在 initiator 處理乙個任務時,任務未完成,但中間資料有誤了 如 crc 失敗 可以通過任務重置來本 connection 上的該任務分配置到乙個新的 connection 中,然後繼續完成乘下的資料,免得整個任務重新執行。任務重置屬於commond recovery,涉及到多 connec...

利用 linux 定時任務,重啟服務,切割日誌

1.編輯定時任務 編輯定時任務 crontab e 檢視當前使用者的定時任務 crontab l2.在開啟的檔案中新增你的任務 內容 就是 每1分鐘 執行一次 redis cron.sh 日誌輸出到 redis.log 中 1 bin bash x root redis cron.sh root r...