久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

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

共計(jì) 3405 個(gè)字符,預(yù)計(jì)需要花費(fèi) 9 分鐘才能閱讀完成。

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

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ǔ)過(guò)程、JAVA 存儲(chǔ)過(guò)程或者外部子程序
EXECUTEABLEoracle 數(shù)據(jù)庫(kù)之外的應(yīng)用,比如操作系統(tǒng)命令

1、創(chuàng)建 Programs 使用 DBMS_SCHEDULER.CREATE_PROGRAM 過(guò)程
舉個(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)使用。比如說(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            注釋信息。

Program 的管理
創(chuàng)建完 program 之后,就涉及到 program 如何執(zhí)行了,前面介紹 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
—————————— —————- ——————– ——————- —–
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 過(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ò)程還記的嗎?該過(guò)程對(duì)于 program 同樣好使,并且調(diào)用方式也完全一樣,例如:
begin
dbms_scheduler.disable(myprogram1
end;
另外,如果希望將 program 置為 enabled 狀態(tài),執(zhí)行 DBMS_SCHEDULER.ENABLE 過(guò)程即可,這里不再例舉。
接下來(lái),就可以為剛剛創(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)?program 定義的參數(shù),可以通過(guò) 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 過(guò)程即可,例如:
begin
  dbms_scheduler.drop_program_argument(myprogram1 , dirpath
end;
該過(guò)程第一個(gè)參數(shù)指定 program 名稱,第二個(gè)參數(shù)指定定義的 argument 名稱,當(dāng)然此處也可以指定 argument 的位置,即前例視圖返回結(jié)果中的 ARGUMENT_POSITION 列值。
要?jiǎng)h除 program 的話就更簡(jiǎn)單了,使用 DROP_PROGRAM 過(guò)程即可,例如:
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 更像是之前版本繼承過(guò)來(lái)的 JOBS,只不過(guò) 10g 中 SCHEDULER 管理的 JOBS 功能更加強(qiáng)大。

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

正文完
 
丸趣
版權(quán)聲明:本站原創(chuàng)文章,由 丸趣 2023-07-20發(fā)表,共計(jì)3405字。
轉(zhuǎn)載說(shuō)明:除特殊說(shuō)明外本站除技術(shù)相關(guān)以外文章皆由網(wǎng)絡(luò)搜集發(fā)布,轉(zhuǎn)載請(qǐng)注明出處。
評(píng)論(沒(méi)有評(píng)論)
主站蜘蛛池模板: 卓尼县| 进贤县| 安阳市| 湖北省| 新丰县| 南通市| 武隆县| 武安市| 金湖县| 淮安市| 洛川县| 苏尼特左旗| 视频| 武夷山市| 浮山县| 沈丘县| 佛冈县| 慈溪市| 深圳市| 泰来县| 炎陵县| 罗源县| 察隅县| 平罗县| 乌拉特后旗| 沾化县| 玉溪市| 乐都县| 厦门市| 襄樊市| 普格县| 抚顺市| 巴林左旗| 延寿县| 崇阳县| 黔江区| 临邑县| 镇远县| 霍城县| 正阳县| 隆回县|