11g_job执行带参数的procedure
2024-08-24 04:19:54
现有一个参数为date类型的存储:
create or replace procedure t_pro(t_var in date)
as
begin
dbms_output.put_line(TO_CHAR(T_VAR,'YYYY'));
--dbms_output.put_line(T_VAR);
end;
job的实现代码为:
begin
dbms_scheduler.create_job(
job_name => 'FFFF',
job_type => 'STORED_PROCEDURE', //表示该job执行的是一个存储过程类型
job_action => '"Schema"."Procedure"', //表示执行的是哪一个存储过程(说白了就是存储的名字),该存储过程不能有输入输出参数和输出参数。
number_of_arguments => 1, //该job的执行程序的参数个数为 1
repeat_interval => 'FREQ=DAILY;INTERVAL=3', //表示每天的3点为执行该job的时间
enabled => FALSE //表示是否启用该job,注意大小写
);
end;
job定义完成后,就要给该job的参数设定值了:
begin
DBMS_SCHEDULER.SET_JOB_ARGUMENT_VALUE (
job_name => 'FFFF',
argument_position => 1,
argument_value => SYSDATE
);
end;
参数 argument_position => 1 表示的是 该job的参数的位置,如果job中参数有多个,写为2,3,4....依次递增1。注意:如有多个参数需要制定需要这样写
begin
DBMS_SCHEDULER.SET_JOB_ARGUMENT_VALUE (
job_name => 'FFFF',
argument_position => 1,
argument_value => SYSDATE
);
DBMS_SCHEDULER.SET_JOB_ARGUMENT_VALUE (
job_name => 'FFFF',
argument_position => 2,
argument_value => val2
);
DBMS_SCHEDULER.SET_JOB_ARGUMENT_VALUE (
job_name => 'FFFF',
argument_position => 3,
argument_value => val3
);
......
end;
job的参数设置,支持varchar2和date类型参数
启用job和执行job:
EXEC DBMS_SCHEDULER.ENABLE('FFFF');
EXEC DBMS_SCHEDULER.RUN_JOB('FFFF');
最新文章
- plsql查询数据显示为乱码解决方法
- 如何加密android apk
- Android - Animation 贝塞尔曲线之美
- HDU2537:8球胜负
- springboot 入门三- 读取配置信息二(读取属性文件方式)
- 6.2、Android Studio内存
- 使用本地缓存快还是使用redis缓存好?
- The Tomcat connector configured to listen on port 8080 failed to start. The port may already be in use or the connector may be misconfigured
- bzoj4861 / P3715 [BJOI2017]魔法咒语
- learning svn change commit log
- 2018SDIBT_国庆个人第六场
- [转] 钉钉的H5性能优化方案
- c# 字符串去掉两端空格,并且将字符串中多个空格替换成一个空格
- C#中字符串 ";驻留";与Lock(转载)
- linux下进程cpu占用过高问题定位方法
- Markdown 使用方法总结
- Calendar计算一个月前的日期,踩坑记录
- java: jdk1.8以后就不支持桥接的方式
- mysql环境变量配置(复制)
- Vue 项目中添加全局过滤器以及全局混合mixin