利用Oracle的Job Queue實現定時操作

2021-03-31 08:56:57 字數 1023 閱讀 9344

1、確保oracle的工作模式允許啟動佇列管理器(snp程序)

svrmgrl> alter system enable restricted session;

或 sql> alter system disenable restricted session;

2、確保oracle已配置任務佇列管理器的啟動引數

initsid.ora中:

job_queue_process=n(0);(0-36)個程序

job_queue_interval=n(60);(1-3600)秒喚醒

3、將任務加入資料庫的任務佇列中

dbms_job.submit (

job out binary_integer, (任務號)

what in varchar2, (執行任務的名稱及入參)

next_date in date, (任務執行的時間)

interval in varchar2, (任務執行的間隔。null:執行一次;sysdate+m:週期性,每隔m天執行)

no_parse in boolean

) 同時

grant execute on dbms_job to ...;

4、將要執行的任務,為儲存過程等pl/sql程式段

sql> variable n number;

sql> begin

2 dbms_job.submit(n, 'my_job', sysdate, 'sysdate + 1/360');

3 ***mit;

4 end

5 /

sql> print :n;

5、檢視job

table :user_jobs、dba_jobs

column:job (任務號)

next_date (下次執行日期)

next_sec (下次執行時間)

failures (失敗次數,失敗16次則自動終止)

broken (終止標誌,y/n)

oracle利用user db like的儲存過程

create or replace procedure hello as 定義引數 得到objectid cursor cursor objectid is select id from select a1.id from resource wap data finish a1 union sele...

利用oracle生成年曆

with x as select to char everyday,yyyy mm as ym,to char everyday,yyyy as year,to char everyday,mm as month,case when to char everyday,mm 01 and to cha...

利用SSD優化Oracle儲存

前幾天有幸和蓋國強老師做了一個技術交流,從中學到了不少關於oracle的相關知識,其實感受最深的是優化儲存。傳統的儲存我們一般通過表空間規劃,表和索引的分離來提搞效能。但是隨著軟硬體的提高,現在可以更簡單的來優化資料儲存。眾所周知,ssd的i o效能指標 iops 即每秒多少次io動作 上,可以達到...

利用函式實現的oracle行列轉換

方式二,資料內容為不可 的,則需要藉助儲存過程或者函式來實現 如下面所述的表內容,在name欄位內容不確定時,合併相同id的那麼值可以有兩種實現方式,其一為利用函式,其二使用表變數並編寫儲存過程實現。下面描述了用函式實現的方式。table1 id varchar2 10 name varchar2 ...

利用oracle的動態PL SQL對簡單表示式求值

create or replace function power.getrl v charrl in varchar2,v noerror in char return float isv rl float v cursorid integer v selectstmt varchar2 2000 ...