一般在sqlplus或者其他第三方oracle工具中,按照語(yǔ)法及需求寫好代碼,直接執(zhí)行創(chuàng)建過程即可。

創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、思禮網(wǎng)絡(luò)推廣、小程序制作、思禮網(wǎng)絡(luò)營(yíng)銷、思禮企業(yè)策劃、思禮品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供思禮建站搭建服務(wù),24小時(shí)服務(wù)熱線:028-86922220,官方網(wǎng)址:chinadenli.net
一般語(yǔ)法如下:
1
2
3
4
5
6
7
8
9
CREATE [OR REPLACE] TRIGGER trigger_name
{BEFORE | AFTER }
{INSERT | DELETE | UPDATE [OF column [, column …]]}
[OR {INSERT | DELETE | UPDATE [OF column [, column …]]}...]
ON [schema.]table_name | [schema.]view_name
[REFERENCING {OLD [AS] old | NEW [AS] new| PARENT as parent}]
[FOR EACH ROW ]
[WHEN condition]
PL/SQL_BLOCK | CALL procedure_name;
把submit變成isubmit,其他都一樣,這樣如果301被占用,仍然是要報(bào)錯(cuò)的,但是如果沒有被占用,那么就建立了一個(gè)301編號(hào)的job,如下:
Begin
sys.dbms_job.isubmit(job = 301,
what = 'RPT_Del_Revise;',
next_date = to_date('2010-06-01', 'YYYY-MM-DD'),
interval = 'TRUNC(LAST_DAY(SYSDATE)+1)');
Commit;
End;
begin
dbms_scheduler.create_job(job_name?=?'scan_table',?
job_type?=?'STORED_PROCEDURE',?
job_action?=?'sp_scan_table',?--自定義的掃描表存儲(chǔ)過程
start_date?=?to_timestamp('20150827?00:00:00',?'yyyymmdd?hh24:mi:ss'),?
repeat_interval?=?'freq=minutely;interval=10;byhour=17,18,19,20,21,22,23');
end;
/
begin
dbms_scheduler.enable(name?=?'scan_table');
end;
/
--查看記錄表 SELECT * FROM JOB_RECORD_10GTABLE ORDER BY RECORDDATE DESC; --回滾記錄表 DROP TABLE JOB_RECORD_10GTABLE; --刪除記錄表中的數(shù)據(jù) DELETE FROM JOB_RECORD_10GTABLE; --2.建存儲(chǔ)過程 CREATE OR REPLACE PROCEDURE PRO_10GJOB_TESTISBEGININSERT INTO JOB_RECORD_10GTABLE VALUES(SYSDATE); END PRO_10GJOB_TEST;--3.建JOBBEGINSYS.DBMS_SCHEDULER.CREATE_JOB( JOB_NAME = 'JOB10GTEST',--生成job名稱 JOB_TYPE = 'STORED_PROCEDURE',--job類型 JOB_ACTION = 'PRO_10GJOB_TEST',--job執(zhí)行的程序 START_DATE = SYSDATE,--job開始執(zhí)行時(shí)間 REPEAT_INTERVAL = 'FREQ=MINUTELY',--job執(zhí)行頻率 END_DATE = NULL,--job結(jié)束執(zhí)行時(shí)間 JOB_CLASS = 'DBMS_JOB$', ENABLED = TRUE, AUTO_DROP = FALSE, COMMENTS = '10G JOB 測(cè)試');--job描述END;--4.啟動(dòng)JOBBEGINDBMS_SCHEDULER.ENABLE('JOB10GTEST');END;--5.停用JOBBEGINDBMS_SCHEDULER.STOP_JOB('JOB10GTEST');END;--5.刪除JOBBEGINDBMS_SCHEDULER.DROP_JOB('JOB10GTEST'); 最后給出JOB執(zhí)行頻率的一些參數(shù) 以下給出部分repeat_interval的寫法實(shí)例,以供參考 每天'FREQ=DAILY;INTERVAL=1' 第分鐘 'FREQ=MINUTELY;INTERVAL=1' 每4小時(shí) 'FREQ=HOURLY;INTERVAL=4;BYMINUTE=0;BYSECOND=0' 每月第一天 'FREQ=DAILY;BYMONTHDAY=1' 工作日的上午7點(diǎn)和下午3點(diǎn) 'FREQ=DAILY; BYDAY=MON,TUE,WED,THU,FRI; BYHOUR=7,15;BYMINUTE=0;BYSECOND=0'
將下面的存儲(chǔ)過程名稱換成實(shí)際的存儲(chǔ)過程名稱,就可以實(shí)現(xiàn)您要的功能的,
現(xiàn)為你寫的,直接在pl/sql?dev里面執(zhí)行就行了,有啥問題再聯(lián)系我。
上面一段是刪除job,后面的是建立job,我寫了判斷語(yǔ)句,可以隨意執(zhí)行
參考o(jì)racle的?dbms_job包。
---------------------華麗麗的分割線----------------------------
DECLARE
i_count?number;
job_num?number;
BEGIN
select?count(job)?into?i_count?from?user_jobs?where?upper(what)='存儲(chǔ)過程名稱;';
if?i_count0?then
select?job?into?job_num?from?user_jobs?where?upper(what)='存儲(chǔ)過程名稱;';
dbms_job.remove(job_num);
end?if;
END;
/
commit;
DECLARE?X?NUMBER;
BEGIN
DBMS_JOB.SUBMIT
(?job??????=?X
,what??????=?'存儲(chǔ)過程名稱;'
,next_date?=?to_date(to_char(sysdate+1,'yyyy-mm-dd')||'?01:00:00','yyyy-mm-dd?hh24:mi:ss')
,interval??=?'SYSDATE+1'
,no_parse??=?TRUE
);
END;
/
commit;
declare
jobid number;
begin
sys.dbms_job.submit(
jojobid,
'PROC_test();',
to_date('20130917 01:00','yyyymmdd HH24:mi'),
'sysdate+1');
end;
/
沒測(cè)試。如果是我,我會(huì)把starttime和endtime寫在PROC_test里,不傳參。
網(wǎng)站欄目:oracle如何建job Oracle如何建立分區(qū)表
文章分享:http://chinadenli.net/article10/hpjhdo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營(yíng)銷型網(wǎng)站建設(shè)、自適應(yīng)網(wǎng)站、電子商務(wù)、網(wǎng)站內(nèi)鏈、網(wǎng)站導(dǎo)航、手機(jī)網(wǎng)站建設(shè)
聲明:本網(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)
猜你還喜歡下面的內(nèi)容