oracle定时执行存储过程的时间区间问题
发布网友
发布时间:2022-04-26 18:46
我来回答
共2个回答
热心网友
时间:2022-04-09 05:59
目测, 你的存储过程, 需要在 下面这些时刻运行:
1:00
3:00
5:00
7:00
16:00
18:00
20:00
22:00
CREATE OR REPLACE PROCEDURE other_proc
AS
vHour VARCHAR(2);
BEGIN
vHour := TO_CHAR(SYSDATE, 'HH24');
IF vHour = '01' OR vHour = '03' OR vHour = '05' OR vHour = '07'
OR vHour = '16' OR vHour = '18' OR vHour = '20' OR vHour = '22' THEN
-- 调用你那个存储过程.
-- 由于没有代码, 暂时写 NULL;
NULL;
END IF;
END;
/
variable jobno number;
begin
dbms_job.submit(:jobno, 'other_proc;', trunc(sysdate+1/24,'HH'), 'trunc(SYSDATE+1/24,''HH'')');
commit;
end;
/
热心网友
时间:2022-04-09 07:17
DECLARE
v_date VARCHAR2(8) := '20130312';
v_date1 DATE := to_date(v_date, 'yyyymmdd');
BEGIN
LOOP
过程名字(v_date);
v_date1 := v_date1 + 2/24;
v_date := to_char(v_date1, 'yyyymmdd');
EXIT WHEN v_date1 >= SYSDATE;
END LOOP;
END;
你的存储过程里面应该判断当前时间是否在那个时间区间