Oracle中查看定时Job

Oracle中有很多定时的Jobs,  如数据下载,数据计算,数据监控等等

查看系统的Job SQL语句如下:

SELECT * from All_Scheduler_Jobs

 


 

### 创建和配置Oracle存储过程定时任务 #### 定义存储过程 为了实现特定业务逻辑的操作,首先需要定义一个存储过程。下面是一个简单的例子: ```sql CREATE OR REPLACE PROCEDURE test_procedure(in_num NUMBER) IS BEGIN DBMS_OUTPUT.PUT_LINE(in_num); -- 打印输入参数in_num的值[^3] END; / ``` 此段代码创建了一个名为`test_procedure`的过程,接受一个数值类型的参数并将其打印出来。 #### 声明和提交定时任务 接下来,在Oracle中可以通过DBMS_JOB包来安排这个存储过程按计划执行。这里展示如何设定一个每分钟触发的任务实例: ```sql DECLARE job_number NUMBER; BEGIN DBMS_JOB.SUBMIT( job => job_number, what => 'test_procedure(19);', -- 调用之前创建好的存储过程,并传递参数19给它 next_date => TO_DATE('20240305 02:00','YYYYMMDD HH24:MI'), -- 设置首次启动时间为2024年3月5日早上两点整 interval => 'SYSDATE + 1/(24*60)' -- 表达式表示每隔一分钟重复一次该作业 ); COMMIT; -- 提交更改使新加入的工作生效 END; / ``` 这段脚本利用了`DBMS_JOB.SUBMIT()`函数向调度程序注册一个新的工作项。注意这里的`interval`字段指定了循环间隔为每一分钟;如果希望调整频率,则需修改此处的时间表达式。 对于更复杂的场景或更高版本的Oracle数据库(如12c及以上),推荐使用更为先进的`DBMS_SCHEDULER`组件代替传统的`DBMS_JOB`接口,因为前者提供了更加丰富的特性和更好的性能表现[^2]。 例如,采用`DBMS_SCHEDULER.CREATE_JOB`方法同样能完成上述功能: ```sql BEGIN SYS.DBMS_SCHEDULER.create_job ( job_name => 'MY_TEST_PROCEDURE_JOB', job_type => 'PLSQL_BLOCK', job_action => 'BEGIN TEST_PROCEDURE(19); END;', start_date => TO_TIMESTAMP_TZ('2024-03-05 02:00:00 Asia/Shanghai'), repeat_interval => 'FREQ=MINUTELY;', -- 使用标准的日历表达式语法指定频次 enabled => TRUE ); END; / ``` 这种方法不仅支持跨时区的时间戳处理,还允许通过直观的日历模式字符串(`repeat_interval`)精确控制执行规律。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值