问题描述
有没有办法将以下内容表示为oneOracle日历表达式?
参考:https://docs.oracle.com/cd/B28359_01/server.111/b28310/scheduse004.htm#ADMIN12415
Mon-Thurs hourly except 5PM and 8PM, Fri 12AM-4PM
(目前我有两个单独的日历字符串:
)
如果可能的话,希望合并成一个表达式。提前谢谢!
参考:https://docs.oracle.com/cd/B28359_01/server.111/b28310/scheduse004.htm#ADMIN12415
Mon-Thurs hourly except 5PM and 8PM, Fri 12AM-4PM
(目前我有两个单独的日历字符串:
FREQ=HOURLY;BYHOUR=0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,18,19,21,22,23;BYMINUTE=11,26,41,56;BYDAY=MON,TUE,WED,THU; FREQ=HOURLY;BYHOUR=0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16;BYMINUTE=11,26,41,56;BYDAY=FRI;复制
)
如果可能的话,希望合并成一个表达式。提前谢谢!
专家解答
我认为不可能使用单个 “FREQ”,但这并不意味着您在这里没有很多选择
1) 重复功能
重复间隔可以是一个plsql函数,该函数在下次应运行时返回,例如
2) 合并时间表
您可以按照上面的定义创建2个计划,然后使用INCLUDE子句创建一个将两者结合在一起的计划
3) 超集加PLSQL
我看到的一件常见的事情是人们创建一个时间表,该时间表是两者的超集,然后更改作业文本,即
job_action =>q'{my_proc;}'
变成
job_action =>q' {如果to_char(sysdate,'D') = 1和 .... 那么我的 _ proc; 如果;}'结束
因此,他们拥有PLSQL的全部灵活性,可以准确控制他们希望作业在什么条件下运行。/
1) 重复功能
重复间隔可以是一个plsql函数,该函数在下次应运行时返回,例如
SQL> create table t ( x date ); Table created. SQL> SQL> create or replace function my_special_interval return date is 2 begin 3 return sysdate + 30/86400; 4 end; 5 / Function created. SQL> SQL> begin 2 dbms_scheduler.create_job ( 3 job_name => 'MY_JOB', 4 job_type => 'PLSQL_BLOCK', 5 job_action => 'begin insert into t values (sysdate); commit; end;', 6 start_date => sysdate, 7 repeat_interval => 'my_special_interval', 8 enabled => true); 9 end; 10 / PL/SQL procedure successfully completed. SQL> select * from t; X ------------------- 04/09/2020 14:15:39 SQL> / X ------------------- 04/09/2020 14:15:39 04/09/2020 14:16:09复制
2) 合并时间表
您可以按照上面的定义创建2个计划,然后使用INCLUDE子句创建一个将两者结合在一起的计划
3) 超集加PLSQL
我看到的一件常见的事情是人们创建一个时间表,该时间表是两者的超集,然后更改作业文本,即
job_action =>q'{my_proc;}'
变成
job_action =>q' {如果to_char(sysdate,'D') = 1和 .... 那么我的 _ proc; 如果;}'结束
因此,他们拥有PLSQL的全部灵活性,可以准确控制他们希望作业在什么条件下运行。/
文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
【专家有话说第五期】在不同年龄段,DBA应该怎样规划自己的职业发展?
墨天轮编辑部
1327次阅读
2025-03-13 11:40:53
Oracle RAC ASM 磁盘组满了,无法扩容怎么在线处理?
Lucifer三思而后行
803次阅读
2025-03-17 11:33:53
Oracle+Deepseek+Dify 实现数据库数据实时分析
bicewow
729次阅读
2025-03-06 09:41:49
2月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
469次阅读
2025-03-13 14:38:19
Oracle 如何修改 db_unique_name?强迫症福音!
Lucifer三思而后行
366次阅读
2025-03-12 21:27:56
Oracle DataGuard高可用性解决方案详解
孙莹
318次阅读
2025-03-26 23:27:33
Oracle分区和执行计划相关的几个问题
听见风的声音
311次阅读
2025-03-07 08:51:42
数据库管理-第299期 数据库是否需要定期重启(20250306)
胖头鱼的鱼缸
254次阅读
2025-03-06 09:09:35
切换Oracle归档路径后,不能正常删除原归档路径上的归档文件
dbaking
252次阅读
2025-03-19 14:41:51
风口浪尖!诚通证券扩容采购Oracle 793万...
Roger的数据库专栏
247次阅读
2025-03-24 09:42:53