在本篇文章中,我們主要介紹參數(shù)類型的內(nèi)容,自我感覺有個不錯的建議和大家分享下
現(xiàn)有一個參數(shù)為date類型的存儲:
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的實現(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í)行的是一個存儲進(jìn)程類型,參數(shù)?job_action => 'T_PRO' 表現(xiàn)執(zhí)行的是個一哪存儲進(jìn)程(說白了就是存儲的名字)以下為官方檔文對該參數(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
.
官方檔文要求
用戶名.存儲名字?
這樣寫!而且存儲進(jìn)程中有 輸入輸出和輸出參數(shù)時,job_type的值都不能為?
STORED_PROCEDURE。當(dāng)然沒有了job_type參數(shù),job_acton也不被持支了!
????
參數(shù)?number_of_arguments => 1 代表該job的執(zhí)行程序(本例就是T_PRO)的參數(shù)個數(shù)(
T_PRO的個數(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點為執(zhí)行該job的時光!該參數(shù)怎么設(shè)置請考參官方檔文
????
參數(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ù)有多個,寫為2,3,4....次依遞增1。注意:有如多個參數(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è)定一個新的值,要設(shè)定一個非字符的值,應(yīng)用
|
????
????SET_JOB_ARGUMENT_VALUE
????
????can be used to set arguments of lightweight jobs but only if the argument is of type
????
????VARCHAR2
????
????.
????
該存儲給輕量級job的參數(shù)設(shè)置一個值而且該參數(shù)的類型要為?
VARCHAR2!
???? 官網(wǎng)上很確明的告訴我:job的參數(shù)設(shè)置,只持支varchar2類型的!,但是驗實上去卻明證能持支date類型參數(shù)!!(驗證進(jìn)程續(xù)持了2個小時)
???? 用啟job和執(zhí)行job:
EXEC DBMS_SCHEDULER.ENABLE('FFFF');
EXEC DBMS_SCHEDULER.RUN_JOB('FFFF');
????實際上job參數(shù)時可以持支date類型的輸入?yún)?shù)!!我呆板本版為
SQL> select VERSION from v$instance;
VERSION
-----------------
11.2.0.1.0
????
????
????
????
????
????
????
文章結(jié)束給大家分享下程序員的一些笑話語錄: 現(xiàn)在社會太數(shù)字化了,所以最好是有一個集很多功能于一身的設(shè)備!
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元

