create table sc(id number,rundate date); insert into sc values(1,to_date('2010-09-22','yyyy-mm-dd')); CREATE OR REPLACE PROCEDURE p_test IS v_count PLS_INTEGER; BEGIN v_count := 0; SELECT COUNT(1) INTO v_count FROM sc WHERE rundate = trunc(SYSDATE); IF v_count >= 1 THEN --你要运行代码 END IF; END; /
create or replace procedure test_pro is begin insert into t values(1,'kkkk'); commit; end test_pro; SQL> var job1 number; SQL> begin 2 if to_char(sysdate,'mm-dd') in ('08-29','08-31') then 3 dbms_job.submit(:job1,'test_pro;',sysdate,'sysdate+1'); 4 end if; 5 end; 6 /
1、你可以写JOB,interval设置成每隔一天。
2、然后JOB调用的存储过程中,判断当前日期是否在你指定的表中,
如果是,则继续执行后面的任务。不是,则退出!
这个判断怎么写?能不能稍微详细点?批
insert into sc values(1,to_date('2010-09-22','yyyy-mm-dd'));
CREATE OR REPLACE PROCEDURE p_test IS
v_count PLS_INTEGER;
BEGIN
v_count := 0;
SELECT COUNT(1) INTO v_count FROM sc WHERE rundate = trunc(SYSDATE);
IF v_count >= 1 THEN
--你要运行代码
END IF;
END;
/
begin
insert into t values(1,'kkkk');
commit;
end test_pro;
SQL> var job1 number;
SQL> begin
2 if to_char(sysdate,'mm-dd') in ('08-29','08-31') then
3 dbms_job.submit(:job1,'test_pro;',sysdate,'sysdate+1');
4 end if;
5 end;
6 /