ORACLE 创建job定时执行带参数的存储过程/无参数的存储过程
在Oracle中创建一个定时任务(Job)来执行存储过程,可以通过DBMS\_SCHEDULER或DBMS\_JOB包来完成。以下是创建定时任务执行存储过程的例子:
无参数的存储过程:
CREATE OR REPLACE PROCEDURE my_procedure_no_params
IS
BEGIN
-- 这里放置你的代码
NULL; -- 如果没有代码,可以使用NULL占位符
END;
/
-- 创建定时任务
BEGIN
DBMS_SCHEDULER.create_job (
job_name => 'my_job_no_params',
job_type => 'PLSQL_BLOCK',
job_action => 'BEGIN my_procedure_no_params; END;',
start_date => SYSTIMESTAMP,
repeat_interval => 'FREQ=DAILY; BYHOUR=2; BYMINUTE=0; BYSECOND=0', -- 每天凌晨2点执行
enabled => TRUE,
comments => 'Job to execute my_procedure_no_params daily at 2 AM');
END;
/
带参数的存储过程:
CREATE OR REPLACE PROCEDURE my_procedure(p_param1 IN NUMBER, p_param2 IN VARCHAR2)
IS
BEGIN
-- 这里放置你的代码,使用参数p_param1和p_param2
NULL; -- 如果没有代码,可以使用NULL占位符
END;
/
-- 创建定时任务
BEGIN
DBMS_SCHEDULER.create_job (
job_name => 'my_job_with_params',
job_type => 'PLSQL_BLOCK',
job_action => 'BEGIN my_procedure(10, ''example''); END;',
start_date => SYSTIMESTAMP,
repeat_interval => 'FREQ=DAILY; BYHOUR=2; BYMINUTE=0; BYSECOND=0', -- 每天凌晨2点执行
enabled => TRUE,
comments => 'Job to execute my_procedure with params daily at 2 AM');
END;
/
在上述例子中,my_procedure_no_params
和my_procedure
是存储过程的名称,my_job_no_params
和my_job_with_params
是定时任务的名称。repeat_interval
定义了任务的执行频率。这些值可以根据你的具体需求进行调整。
评论已关闭