oracle定時(shí)更新(JOBS)
成都創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的平谷網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
rm.pro_hrm_emp_info_job過(guò)程
需要每天都更新,所以先創(chuàng)建個(gè)procedure,再創(chuàng)建個(gè)job就可以實(shí)現(xiàn)定時(shí)更新
create or replace procedure rm.pro_hrm_emp_info_job is
zm
begin
update rm.hrm_emp_info
set ages = to_number(TRUNC(nvl((sysdate brith_date) / 365, 0))),
leng_serv = to_number(TRUNC(nvl((sysdate work_date) / 365, 0))),
ins_len_ser = to_number(TRUNC(nvl((sysdate ente_appe_date) / 365,
0)));
commit;
end pro_hrm_emp_info_job;
相應(yīng)的`job
declare
jobno number;
begin
dbms_job.submit(jobno,’rm.pro_hrm_emp_info_job;’,trunc(sysdate),’trunc(sysdate)+1’);每天零點(diǎn)更新
commit;
end;
/
分解下job
dbms_job.submit(jobno, job號(hào),由sys.jobseq生成
’rm.pro_hrm_emp_info_job;’, 要執(zhí)行的procedure
trunc(sysdate), 下次要執(zhí)行的時(shí)間
’trunc(sysdate)+1’); 每次間隔的時(shí)間,此處的1標(biāo)識(shí)一天 也可1/1440每一分鐘執(zhí)行一次
查看
select * from sys.user_jobs;
其中創(chuàng)建的jobno(任務(wù)號(hào))由sys.jobseq序列生成
主由packages中的sys.dbms_job執(zhí)行
細(xì)節(jié)可以查看sys.dbms_job包內(nèi)容。 ;
1、創(chuàng)建數(shù)據(jù)庫(kù)日志表導(dǎo)出為文本文件的腳本tabout.ctl或tabout.sql
注意:該日志導(dǎo)出后在c:\HttpLog目錄下
tabout.ctl腳本內(nèi)容如下:
SET NEWPAGE NONE
SET HEADING OFF
SET TERM OFF
SET SPACE 0
SET PAGESIZE 0
SET TRIMOUT ON
SET TRIMSPOOL ON
SET LINESIZE 2500
set feedback off
set echo off
SET VERIFY OFF
column v_date new_value filename;
select to_char(sysdate,'yyyymmdd') || '.log' v_date from dual;
spool ..\HttpLog\filename ? ? ? ? ? ?
select id||','||name from orcluser.test;
spool off;
exit;
2、創(chuàng)建調(diào)用該腳本的logout.bat文件
logout.bat內(nèi)容如下:
mkdir ..\HttpLog\
C:\oracle\ora92\bin\sqlplus orcluser/orcl @C:Oracleout.ctl
說(shuō)明:該bat文件直接在當(dāng)前目錄下創(chuàng)建名為HttpLog的文件夾,以便tabout.ctl腳本輸出的文件存放到該目錄下。其通過(guò)調(diào)用Oracle中sqlplus可執(zhí)行文件來(lái)執(zhí)行tabout.ctl腳本,所以該文件直接雙擊即可運(yùn)行,無(wú)需其他操作。
3、通過(guò)windows定時(shí)任務(wù)實(shí)現(xiàn)自動(dòng)定期執(zhí)行
“在控制面板——任務(wù)計(jì)劃——添加任務(wù)計(jì)劃”中建立定期將數(shù)據(jù)庫(kù)中日志表數(shù)據(jù)導(dǎo)出為文本格式(如:你可以根據(jù)需求設(shè)置為每天對(duì)日志表數(shù)據(jù)進(jìn)行導(dǎo)出)。根據(jù)你當(dāng)前對(duì)日志文件路徑的存儲(chǔ)需求,修改上面兩個(gè)腳本中的存儲(chǔ)路徑,在windows定時(shí)任務(wù)直接調(diào)用logout.bat文件執(zhí)行即可。
工作中,我們使用的數(shù)據(jù)庫(kù)大部分是oracle、mysql、db2、sql server等數(shù)據(jù)庫(kù),在使用oracle最匹配的工具plsql的時(shí)候,如果用plsql創(chuàng)建定時(shí)器呢看下面我簡(jiǎn)單介紹使用工具創(chuàng)建定時(shí)器的方法。