ORACLE提供的重要的包

來源:互聯網
上載者:User

前言

Oracle提供了幾個包,它們可以用來完成很多任務,從內部進程通訊到檔案I/O,到在PL/SQL塊中動態建立和執行SQL語句。所有這些包由SYS使用者所擁有—當Oracle最初安裝時兩個使用者中的一個,這些包中最重要的包括:

DBMS_Alert 不用輪詢就允許應用命名並發出警告條件訊號的過程與函數

DBMS_DDL 允許擷取PL/SQL程式內部一定數量的DDL語句的過程

DBMS_Describe 為預存程序與函數描述API的過程

DBMS_Job 管理BLOBs、CLOBs、NCLOBs與BFILEs的過程與函數

DBMS_Output 允許PL/SQL程式產生終端輸出的過程與函數

DBMS_Pipe 允許資料庫會話使用管道通訊(通訊頻道)的過程與函數

DBMS_SQL 在PL/SQL程式內部執行動態SQL的過程與函數

DBMS_Utility

UTL_File 允許PL/SQL程式讀寫伺服器檔案系統上的文字檔的過程與函數

用DBMS_JOB來實現進階計劃任務

程式有三個參數:需要提交的任務的名字、啟動任務的時間已經執行該任務的間隔時間。

dbms_job.submit(what='statspack_alert.sql;',

next_date=sysdate+1/24,——在下一個小時後啟動

interval='sysdate+1/24');——每小時運行一次

問題是,儘管我們在這個程式中指定了任務起始時間和重新執行的時間間隔,但是我們看不到在預定時間運行該任務的機制。例如,如何讓一個任務在早上8點啟動、每小時 運行一次、最後在下午5點終止呢?

上面的例子讓該任務每小時運行一次,但是為了獲得時間間隔,它有必要建立兩個其它任務:

一個任務在下午5點終止(主)任務,

另一個任務在第二天早上8點啟動(主)任務。

為了實現進階計劃任務,我們可以建立自訂間隔,讓任務在特定的時間間隔來啟動和終止。下面是一個例子:

Schedule a snapshot to be run on this instance every hour
variable jobno number;
   variable instno number;
   begin
   select instance_number into :instno from v$instance;

提交任務從6:00開始,每小時運行一次

dbms_job.submit(
   jobno, 'statspack.snap; ',
   trunc(sysdate)+6/24,
   'trunc(SYSDATE+1/24,''HH'')',
   TRUE,
   instno);

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.