在本篇文章中,我們主要介紹參數(shù)類型的內(nèi)容,自我感覺有個(gè)不錯(cuò)的建議和大家分享下
現(xiàn)有一個(gè)參數(shù)為date類型的存儲(chǔ):
create or replace procedure t_pro(t_var in date) as begin dbms_output.put_line(TO_CHAR(T_VAR,'YYYY')); --dbms_output.put_line(T_VAR); end; /
????job的實(shí)現(xiàn)代碼為:
begin dbms_scheduler.create_job( job_name => 'FFFF', job_type => 'STORED_PROCEDURE', job_action => 'T_PRO', number_of_arguments => 1, repeat_interval => 'FREQ=DAILY;INTERVAL=3', enabled => FALSE ); end; /
????其中參數(shù)?job_type => 'STORED_PROCEDURE' 表現(xiàn)該job執(zhí)行的是一個(gè)存儲(chǔ)進(jìn)程類型,參數(shù)?job_action => 'T_PRO' 表現(xiàn)執(zhí)行的是個(gè)一哪存儲(chǔ)進(jìn)程(說(shuō)白了就是存儲(chǔ)的名字)以下為官方檔文對(duì)該參數(shù)釋解:
????The action is the name of the stored procedure. You have to specify the schema if the procedure resides in another schema than the job. If case sensitivity is needed, enclose the schema name and the store procedure name in double quotes. For example,
job_action_action=>
'"
Schema
"."
Procedure
"
'
.
PL/SQL procedures with
INOUT
or
OUT
arguments are not supported as
job_action
when the job or program type is
STORED_PROCEDURE
.
官方檔文要求
用戶名.存儲(chǔ)名字?
這樣寫!而且存儲(chǔ)進(jìn)程中有 輸入輸出和輸出參數(shù)時(shí),job_type的值都不能為?
STORED_PROCEDURE。當(dāng)然沒有了job_type參數(shù),job_acton也不被持支了!
????
參數(shù)?number_of_arguments => 1 代表該job的執(zhí)行程序(本例就是T_PRO)的參數(shù)個(gè)數(shù)(
T_PRO的個(gè)數(shù)為 1
)。該參數(shù)必要須設(shè)置!起官方檔文的釋解為:This attribute specifies the number of arguments that the job expects. The range is 0-255, with the default being 0.
????
參數(shù)?repeat_interval => 'FREQ=DAILY;INTERVAL=3'表現(xiàn)天天的3點(diǎn)為執(zhí)行該job的時(shí)光!該參數(shù)怎么設(shè)置請(qǐng)考參官方檔文
????
參數(shù)?enabled => FALSE 表現(xiàn)否是用啟該job。這里要設(shè)置為
FALSE?
,
注意大小寫!
???? job定義完成后,就要給該job的參數(shù)設(shè)定值了:
begin DBMS_SCHEDULER.SET_JOB_ARGUMENT_VALUE ( job_name => 'FFFF', argument_position => 1, argument_value => SYSDATE ); end; /
????參數(shù)?argument_position => 1 表現(xiàn)的是 該job的參數(shù)的位置,如果job中參數(shù)有多個(gè),寫為2,3,4....次依遞增1。注意:有如多個(gè)參數(shù)要須制訂要須這樣寫
begin DBMS_SCHEDULER.SET_JOB_ARGUMENT_VALUE ( job_name => 'FFFF', argument_position => 1, argument_value => SYSDATE ); DBMS_SCHEDULER.SET_JOB_ARGUMENT_VALUE ( job_name => 'FFFF', argument_position => 2, argument_value => val2 ); DBMS_SCHEDULER.SET_JOB_ARGUMENT_VALUE ( job_name => 'FFFF', argument_position => 3, argument_value => val3 ); ...... end; /
????參數(shù)?argument_value => SYSDATE 表現(xiàn)你要傳入的值的定義。該參數(shù)官網(wǎng)釋解為:
????
|
The new value to be set for the program argument. To set a non-
給參數(shù)設(shè)定一個(gè)新的值,要設(shè)定一個(gè)非字符的值,應(yīng)用
|
????
????SET_JOB_ARGUMENT_VALUE
????
????can be used to set arguments of lightweight jobs but only if the argument is of type
????
????VARCHAR2
????
????.
????
該存儲(chǔ)給輕量級(jí)job的參數(shù)設(shè)置一個(gè)值而且該參數(shù)的類型要為?
VARCHAR2!
???? 官網(wǎng)上很確明的告訴我:job的參數(shù)設(shè)置,只持支varchar2類型的!,但是驗(yàn)實(shí)上去卻明證能持支date類型參數(shù)!?。?yàn)證進(jìn)程續(xù)持了2個(gè)小時(shí))
???? 用啟job和執(zhí)行job:
EXEC DBMS_SCHEDULER.ENABLE('FFFF'); EXEC DBMS_SCHEDULER.RUN_JOB('FFFF');
????實(shí)際上job參數(shù)時(shí)可以持支date類型的輸入?yún)?shù)?。∥掖舭灞景鏋?
SQL> select VERSION from v$instance; VERSION ----------------- 11.2.0.1.0
????
????
????
????
????
????
????
文章結(jié)束給大家分享下程序員的一些笑話語(yǔ)錄: 現(xiàn)在社會(huì)太數(shù)字化了,所以最好是有一個(gè)集很多功能于一身的設(shè)備!
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
