oracle的job学习

WBOY
풀어 주다: 2016-06-07 15:18:58
원래의
1527명이 탐색했습니다.

在网上搜索了一堆都没用找到可用的,在oracle的目录下找了个 在$ORACLE_HOME/RDBMS/admin下面有个spauto.sql, 语句如下: variable jobno number; variable instno number; begin select instance_number into :instno from v$instance; dbms_job.submit(:jobn

在网上搜索了一堆都没用找到可用的,在oracle的目录下找了个

在$ORACLE_HOME/RDBMS/admin下面有个spauto.sql,

语句如下:

variable jobno number;
variable instno number;
begin
  select instance_number into :instno from v$instance;
  dbms_job.submit(:jobno, 'statspack.snap;', trunc(sysdate+1/24,'HH'), 'trunc(SYSDATE+1/24,''HH'')', TRUE, :instno);
  commit;
end;
/

 

 

放在pl/sql命令行执行即可,其余语法在参见网上的

 

---设置某个时间段执行p_job_run_day 过程
declare
jobid     number;
v_sql     varchar2(2000);
v_day_id number;
begin
SELECT to_number(to_char(SYSDATE-1,'YYYYMMDD')) INTO v_day_id FROM dual;
v_sql:='begin
 if     to_char(sysdate,''HH24:MI'')=''7:00''
 then  p_job_run_day;
dbms_output.put_line(''success'');
end if;
commit;
exception
when     others     then
rollback;
dbms_output.put_line(SQLERRM);
end; ';
dbms_job.submit(jobid,v_sql,sysdate,'sysdate+1/24');
dbms_job.run(jobid);
dbms_output.put_line('job     '||to_char(jobid)||'     is     running');
commit;
end;
/


2 删除job
从select * from user_jobs; 查出job序号
执行 exec dbms_job.remove(22);

 

3 如果控制执行时间

3
描述                    INTERVAL参数值
每天午夜12点            'TRUNC(SYSDATE + 1)'
每天早上8点30分         'TRUNC(SYSDATE + 1) + (8*60+30)/(24*60)'
每星期二中午12点         'NEXT_DAY(TRUNC(SYSDATE ), ''TUESDAY'' ) + 12/24'
每个月第一天的午夜12点    'TRUNC(LAST_DAY(SYSDATE ) + 1)'
每个季度最后一天的晚上11点 'TRUNC(ADD_MONTHS(SYSDATE + 2/24, 3 ), 'Q' ) -1/24'
每星期六和日早上6点10分    'TRUNC(LEAST(NEXT_DAY(SYSDATE, ''SATURDAY"), NEXT_DAY(SYSDATE, "SUNDAY"))) + (6×60+10)/(24×60)'

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!