Oracle調(diào)度Schedule特性中的program分析

本篇內(nèi)容主要講解“Oracle調(diào)度Schedule特性中的program分析”,感興趣的朋友不妨來看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“Oracle調(diào)度Schedule特性中的program分析”吧!

為博山等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及博山網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)、博山網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!

program之于procedure的概念有點(diǎn)像操作系統(tǒng)層面的“程序”或者“應(yīng)用”。但是program是由dba設(shè)定的,program是一個(gè)對(duì)象,一個(gè)可執(zhí)行的對(duì)象。
program實(shí)際的操作可以分為三種類型:
PL/SQL BLOCK      標(biāo)準(zhǔn)的PL/SQL代碼塊
STORED PROCEDURE編譯好的PL/SQL存儲(chǔ)過程、JAVA存儲(chǔ)過程或者外部子程序
EXECUTEABLEoracle數(shù)據(jù)庫之外的應(yīng)用,比如操作系統(tǒng)命令

1、創(chuàng)建Programs使用DBMS_SCHEDULER.CREATE_PROGRAM過程
舉個(gè)例子:
begin
  dbms_scheduler.create_program(program_name   => 'myprogram1',
                                program_action => '/bin/date',
                                program_type   => 'EXECUTABLE',
                                enabled        => TRUE);
end;
/

program_name    指定一個(gè)program的名稱
program_type    指定program的類型,前面交代的三種類型
program_action     實(shí)際執(zhí)行的操作,應(yīng)與前面PROGRAM_TYPE參數(shù)關(guān)聯(lián)使用。比如說前面指定了PROGRAM_TYPE為"PLSQL_BLOCK",那么此處要執(zhí)行的action就應(yīng)當(dāng)是一段標(biāo)準(zhǔn)的pl/sql代碼。
              如果前面指定PROGRAM_TYPE為"STORED_PROCEDURE",那么此處要執(zhí)行的action就應(yīng)當(dāng)是ORACLE中定義好的存儲(chǔ)過程(含Java存儲(chǔ)過程),
              如果前面指定PROGRAM_TYPE為"EXECUTABLE",那么此處就應(yīng)該指定外部命令的命令行信息(含路徑信息)
NUMBER_OF_ARGUMENTS 指定支持的參數(shù)個(gè)數(shù),默認(rèn)值為0即沒有參數(shù)。每個(gè)program最多能夠支持255個(gè)參數(shù),注意如果PROGRAM_TYPE設(shè)置為PLSQL_BLOCK,那么本參數(shù)自動(dòng)忽略
ENABLED             指定是否將創(chuàng)建的program置為有效狀態(tài),默認(rèn)情況下為false。
COMMENTS            注釋信息。

Program的管理
創(chuàng)建完program之后,就涉及到program如何執(zhí)行了,前面介紹CREATE_PROGRAM過程的參數(shù)時(shí)提到,每個(gè)program最多支持255個(gè)參數(shù),要為program添加參數(shù),可以通過DEFINE_PROGRAM_ARGUMENT過程。
不過在為其添加參數(shù)前,要注意program的NUMBER_OF_ARGUMENTS指定的數(shù)量,如果該值為0,那么為其添加參數(shù)時(shí)就會(huì)報(bào)錯(cuò)。
查詢創(chuàng)建的program的信息,可以通過USER_SCHEDULER_PROGRAMS視圖,例如:
SQL> select program_name,program_type,program_action,number_of_arguments,enabled from user_scheduler_programs;
PROGRAM_NAME                   PROGRAM_TYPE     PROGRAM_ACTION       NUMBER_OF_ARGUMENTS ENABL
------------------------------ ---------------- -------------------- ------------------- -----
MYPROGRAM1                     EXECUTABLE       /bin/date                              0 FALSE
前面創(chuàng)建program時(shí)並未指定NUMBER_OF_ARGUMENTS的值,因此我們這里需要首先修改該值為一個(gè)非0值,操作如下
begin
  dbms_scheduler.set_attribute('myprogram1','NUMBER_OF_ARGUMENTS',1);
end;
操作還是使用DBMS_SCHEDULER.SET_ATTRIBUTE過程。另外需要注意,program的NUMBER_OF_ARGUMENTS參數(shù)可是說想改就能改的,正常情況下該處理必須是在program處于enabled之前確認(rèn)完畢,
否則會(huì)觸發(fā)ORA-27465錯(cuò)誤,因此要修改program的參數(shù)之前,必須首先確保要修改program的enabled狀態(tài)為false。
那么對(duì)于已經(jīng)處于enabled狀態(tài)的program,如何修改其狀態(tài)屬性呢?其實(shí)很簡(jiǎn)單,前面操作jobs時(shí)使用的DBMS_SCHEDULER.DISABLE過程還記的嗎?該過程對(duì)于program同樣好使,并且調(diào)用方式也完全一樣,例如:
begin
dbms_scheduler.disable('myprogram1');
end;
另外,如果希望將program置為enabled狀態(tài),執(zhí)行DBMS_SCHEDULER.ENABLE過程即可,這里不再例舉。
接下來,就可以為剛剛創(chuàng)建的my_program1添加路徑參數(shù),操作如下:
begin
  dbms_scheduler.DEFINE_PROGRAM_ARGUMENT(program_name      => 'myprogram1',
                                         argument_position => 1,
                                         argument_name     => 'dirpath',
                                         argument_type     => 'VARCHAR2',
                                         default_value     => '/home/oracle');
end;
/
查詢?yōu)閜rogram定義的參數(shù),可以通過USER_SCHEDULER_PROGRAM_ARGS視圖
select program_name,argument_name,argument_position,argument_type default_value from user_scheduler_program_args;
PROGRAM_NAME                   ARGUMENT_NAME                  ARGUMENT_POSITION DEFAULT_VALUE
------------------------------ ------------------------------ ----------------- ----------------
MYPROGRAM1                     DIRPATH                                        1 VARCHAR2
2、刪除program的argument操作也很簡(jiǎn)單,使用DROP_PROGRAM_ARGUMENT過程即可,例如:
begin
  dbms_scheduler.drop_program_argument('myprogram1','dirpath');
end;
該過程第一個(gè)參數(shù)指定program名稱,第二個(gè)參數(shù)指定定義的argument名稱,當(dāng)然此處也可以指定argument的位置,即前例視圖返回結(jié)果中的 ARGUMENT_POSITION 列值。
要?jiǎng)h除program的話就更簡(jiǎn)單了,使用DROP_PROGRAM過程即可,例如:
begin
  dbms_scheduler.drop_program('myprogram1');
end;
當(dāng)然啦,刪除program的同時(shí),也會(huì)刪除該program對(duì)應(yīng)的所有arguments。
實(shí)際上SCHEDULER中創(chuàng)建job時(shí),也可以指定執(zhí)行外部的程序。SCHEDULER中的Job更像是之前版本繼承過來的JOBS,只不過10g中SCHEDULER管理的JOBS功能更加強(qiáng)大。

到此,相信大家對(duì)“Oracle調(diào)度Schedule特性中的program分析”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

新聞標(biāo)題:Oracle調(diào)度Schedule特性中的program分析
分享鏈接:http://bm7419.com/article4/isgeie.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序、品牌網(wǎng)站制作網(wǎng)站排名、營銷型網(wǎng)站建設(shè)、定制開發(fā)、用戶體驗(yàn)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)