欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

ORACLE中如何使用Programs

小編給大家分享一下ORACLE中如何使用Programs,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

十載建站經(jīng)驗(yàn), 網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站建設(shè)客戶的見(jiàn)證與正確選擇。創(chuàng)新互聯(lián)提供完善的營(yíng)銷(xiāo)型網(wǎng)頁(yè)建站明細(xì)報(bào)價(jià)表。后期開(kāi)發(fā)更加便捷高效,我們致力于追求更美、更快、更規(guī)范。

2.1  創(chuàng)建Programs

Scheduler 中的Program對(duì)象并不是常規(guī)意義上的"程序"或"應(yīng)用",而就是一個(gè)"對(duì)象",由DBA定義的,具有執(zhí)行某項(xiàng)功能的特殊對(duì)象。Program中實(shí)際執(zhí)行的操作可以分為下列三種類(lèi)型:

  • PL/SQL BLOCK :標(biāo)準(zhǔn)的pl/sql代碼塊;

  • STORED PROCEDURE :編譯好的PL/SQL存儲(chǔ)過(guò)程,或者Java存儲(chǔ)過(guò)程,以及外部的c子程序;

  • EXECUTEABLE :ORACLE數(shù)據(jù)庫(kù)之外的應(yīng)用,比如操作系統(tǒng)命令等等。

創(chuàng)建Programs使用DBMS_SCHEDULER.CREATE_PROGRAM過(guò)程,該過(guò)程支持的參數(shù)如下:

    JSSWEB>  desc dbms_scheduler.create_program;

    Parameter           Type           Mode Default? 

    ------------------- -------------- ---- -------- 

    PROGRAM_NAME        VARCHAR2       IN            

    PROGRAM_TYPE        VARCHAR2       IN            

    PROGRAM_ACTION      VARCHAR2       IN            

    NUMBER_OF_ARGUMENTS BINARY_INTEGER IN   Y        

    ENABLED             BOOLEAN        IN   Y        

  • OMMENTS            VARCHAR2       IN   Y      

如上所示,前三項(xiàng)為必選參數(shù),各參數(shù)實(shí)際代表的意義如下:

  • PROGRAM_NAME :指定一個(gè)program名稱;

  • PROGRAM_TYPE :Program的類(lèi)型,如前文中所述,Program支持三種類(lèi)型;

  • PROGRAM_ACTION :實(shí)際執(zhí)行的操作,應(yīng)與前面PROGRAM_TYPE參數(shù)關(guān)聯(lián)使用。比如說(shuō)前面指定了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ǔ)過(guò)程(含Java存儲(chǔ)過(guò)程),如果前面指定PROGRAM_TYPE為"EXECUTABLE",那么此處就應(yīng)該指定外部命令的命令行信息(含路徑信息);

  • NUMBER_OF_ARGUMENTS :指定支持的參數(shù)個(gè)數(shù),默認(rèn)值為0即沒(méi)有參數(shù)。每個(gè)program最多能夠支持255個(gè)參數(shù),注意如果PROGRAM_TYPE設(shè)置為PLSQL_BLOCK,那么本參數(shù)自動(dòng)忽略;

  • ENABLED :指定是否將創(chuàng)建的program置為有效狀態(tài),默認(rèn)情況下為false。

  • COMMENTS :這個(gè)不用再說(shuō)了吧,注釋信息。

下面實(shí)際操作一下看看,PL/SQL或PROCEDURE沒(méi)有挑戰(zhàn)(ORACLE中直接即可調(diào)用),咱們創(chuàng)建一下program,直接調(diào)用操作系統(tǒng)中的ls命令,操作如下:

    SQL> BEGIN

      2  DBMS_SCHEDULER.CREATE_PROGRAM (

      3     program_name           => 'my_program1',

      4     program_action         => '/bin/date',

      5     program_type           => 'EXECUTABLE',

      6     enabled                => TRUE);

      7  END;

      8  /

  • PL/SQL procedure successfully completed.

2.2  管理Programs

定義的program如何執(zhí)行,這里先賣(mài)個(gè)關(guān)子,前面介紹CREATE_PROGRAM過(guò)程的參數(shù)時(shí)提到,每個(gè)program最多支持255個(gè)參數(shù),要為program添加參數(shù),可以通過(guò)DEFINE_PROGRAM_ARGUMENT過(guò)程。不過(guò)在為其添加參數(shù)前,要注意program的NUMBER_OF_ARGUMENTS指定的數(shù)量,如果該值為0,那么為其添加參數(shù)時(shí)就會(huì)報(bào)錯(cuò)。

查詢創(chuàng)建的program的信息,可以通過(guò)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

    -------------------- ---------------- -------------------- ------------------- -----

  • MY_PROGRAM1          EXECUTABLE       /bin/ls                                1 FALSE

由于前面創(chuàng)建program時(shí)並未指定NUMBER_OF_ARGUMENTS的值,因此我們這里需要首先修改該值為一個(gè)非0值,操作如下:

    SQL> exec dbms_scheduler.set_attribute('my_program1','NUMBER_OF_ARGUMENTS',1);

  • PL/SQL procedure successfully completed.

沒(méi)錯(cuò),操作還是使用DBMS_SCHEDULER.SET_ATTRIBUTE過(guò)程。另外需要注意,program的NUMBER_OF_ARGUMENTS參數(shù)可是說(shuō)想改就能改的,正常情況下該處理必須是在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過(guò)程還記的嗎?沒(méi)錯(cuò),該過(guò)程對(duì)于program同樣好使,并且調(diào)用方式也完全一樣,例如:

    SQL> exec dbms_scheduler.disable('my_program1');

  • PL/SQL procedure successfully completed.

另外,如果希望將program置為enabled狀態(tài),執(zhí)行DBMS_SCHEDULER.ENABLE過(guò)程即可,這里不再例舉。

接下來(lái),就可以為剛剛創(chuàng)建的my_program1添加路徑參數(shù),操作如下:

    SQL> BEGIN

      2  DBMS_SCHEDULER.DEFINE_PROGRAM_ARGUMENT (

      3     program_name            => 'my_program1',

      4     argument_position       => 1,

      5     argument_name           => 'dirpath',

      6     argument_type           => 'VARCHAR2',

      7     default_value           => '/home/oracle');

      8  END;

      9  /

  • PL/SQL procedure successfully completed.

查詢?yōu)閜rogram定義的參數(shù),可以通過(guò)USER_SCHEDULER_PROGRAM_ARGS視圖,例如:

    SQL> select program_name,argument_name,argument_position,argument_type, default_value from user_scheduler_program_args;

    PROGRAM_NAME         ARGUMENT_NAME        ARGUMENT_POSITION DEFAULT_VALUE

    -------------------- -------------------- ----------------- --------------------

  • MY_PROGRAM1          DIRPATH                              1 VARCHAR2

刪除program的argument操作也很簡(jiǎn)單,使用DROP_PROGRAM_ARGUMENT過(guò)程即可,例如:

    SQL> exec dbms_scheduler.drop_program_argument('my_program1','dirpath');

  • PL/SQL procedure successfully completed.

該過(guò)程第一個(gè)參數(shù)指定program名稱,第二個(gè)參數(shù)指定定義的argument名稱,當(dāng)然此處也可以指定argument的位置,即前例視圖返回結(jié)果中的 ARGUMENT_POSITION 列值。

要?jiǎng)h除program的話就更簡(jiǎn)單了,使用DROP_PROGRAM過(guò)程即可,例如:

    SQL> exec dbms_scheduler.drop_program('my_program1');

  • PL/SQL procedure successfully completed.

當(dāng)然啦,刪除program的同時(shí),也會(huì)刪除該program對(duì)應(yīng)的所有arguments。

實(shí)際上SCHEDULER中創(chuàng)建job時(shí),也可以指定執(zhí)行外部的程序。SCHEDULER中的Job更像是之前版本繼承過(guò)來(lái)的JOBS,只不過(guò)10g中SCHEDULER管理的JOBS功能更加強(qiáng)大。Programs與Jobs不同的是,Jobs是定義好的,定時(shí)執(zhí)行的任務(wù),而Programs則是定義好的,等待被執(zhí)行的對(duì)象。

以上是“ORACLE中如何使用Programs”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

本文題目:ORACLE中如何使用Programs
分享網(wǎng)址:http://www.chinadenli.net/article16/gocpdg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動(dòng)網(wǎng)站建設(shè)服務(wù)器托管微信小程序靜態(tài)網(wǎng)站手機(jī)網(wǎng)站建設(shè)商城網(wǎng)站

廣告

聲明:本網(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í)需注明來(lái)源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)