gpt4 book ai didi

oracle - apex oracle 中的 DBMS_SCHEDULER

转载 作者:行者123 更新时间:2023-12-02 11:25:37 24 4
gpt4 key购买 nike

我写了一个API包。它有 GET_INFO 过程。我希望每 20 分钟在后台执行一次此过程。我明白我应该用 dbms_scheduler 做什么。但总的来说我不明白在哪里注册它们。我将感谢您提供的示例或您对此的帮助)

我写了这样的代码,但我不知道在哪里使用它:

BEGIN

DBMS_SCHEDULER.CREATE_JOB (

job_name = 'My_Job',

job_type = 'STORED_PROCEDURE',

job_action = 'INSERT INTO TEST2(UPDATEDAT)

VALUES (sysdate);

END;',

start_date = 'systimestamp',

repeat_interval = 'FREQ=SECONDLY;INTERVAL=5',

end_date = null,

auto_drop = FALSE,

comments = 'My new job');

END;

这是我的代码,但我不知道将其存储在哪里。

最佳答案

正如作业类型所暗示的那样,您需要创建一个过程,例如

create or replace procedure Ins_Test2 is
begin
insert into Test2(updatedat) values(sysdate);
commit;
end;

然后通过创建调度程序

begin
dbms_scheduler.create_job (
job_name => 'My_Job',
job_type => 'STORED_PROCEDURE',
job_action => 'Ins_Test2',
start_date => systimestamp,
repeat_interval => 'freq=minutely; interval = 20; byday=MON,TUE,WED,THU,FRI;',
enabled => true,
comments => 'My new job'
);
end;

我添加的位置

byday=MON,TUE,WED,THU,FRI; as an extra direction if you want to run the scheduler within the working days(you can omit that part if you'd like).

systimestamp(get rid of quotes) for start_date might be replaced with an upcoming time info such as start_date => '13-FEB-20 2.00.00PM Asia/Istanbul'

就我而言。

然后列出创建的调度程序

select job_name, next_run_date                           
from dba_scheduler_jobs j;

当前正在运行的

select * 
from user_scheduler_job_log l
order by l.log_date desc;

并将调度程序删除

begin
dbms_scheduler.drop_job( job_name => 'My_Job' );
end;

关于oracle - apex oracle 中的 DBMS_SCHEDULER,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60204418/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com