user_scheduler_jobs调度频率
时间: 2023-08-05 16:04:23 浏览: 47
`user_scheduler_jobs` 表中的 `repeat_interval` 列用于指定调度器作业的重复执行频率。该列的值是一个字符串,表示调度频率的规则。
调度频率的规则使用调度器表达式语言(Scheduler Expression Language)定义。该语言支持复杂的时间表达式,可以用来表示各种调度频率,如每天、每周、每月、每季度、每年等。以下是一些常见的调度频率规则示例:
- 每天早上6点执行一次:
```
FREQ=DAILY;BYHOUR=6;BYMINUTE=0;BYSECOND=0
```
- 每周一、三、五晚上8点和10点各执行一次:
```
FREQ=WEEKLY;BYDAY=MON,WED,FRI;BYHOUR=20,22;BYMINUTE=0;BYSECOND=0
```
- 每月1号和15号早上9点执行一次:
```
FREQ=MONTHLY;BYMONTHDAY=1,15;BYHOUR=9;BYMINUTE=0;BYSECOND=0
```
- 每季度最后一天晚上11点执行一次:
```
FREQ=YEARLY;BYMONTH=3,6,9,12;BYMONTHDAY=-1;BYHOUR=23;BYMINUTE=0;BYSECOND=0
```
以上仅是一些示例,调度器表达式语言支持更加复杂的时间表达式,可以满足您的各种调度需求。如果您需要了解更多关于调度器表达式语言的规则和语法,请参考 Oracle 官方文档。
相关问题
user_scheduler_jobs如何使用
`user_scheduler_jobs` 是 Oracle 数据库中的一个系统表,用于存储所有用户定义的调度器作业的信息。您可以使用该表来查询、创建、修改和删除调度器作业。以下是一些使用 `user_scheduler_jobs` 的示例:
1. 查询所有调度器作业的信息:
```sql
SELECT * FROM user_scheduler_jobs;
```
该查询将返回所有用户定义的调度器作业的详细信息,包括作业名称、作业类型、作业状态、开始时间、重复间隔等。
2. 创建一个新的调度器作业:
```sql
BEGIN
DBMS_SCHEDULER.CREATE_JOB (
job_name => 'my_job',
job_type => 'PLSQL_BLOCK',
job_action => 'BEGIN my_procedure; END;',
start_date => SYSTIMESTAMP,
repeat_interval => 'FREQ=DAILY;BYHOUR=10;BYMINUTE=0;BYSECOND=0'
);
END;
```
该代码将创建一个名为 `my_job` 的新调度器作业,该作业将在每天上午10点运行一次。
3. 修改一个已存在的调度器作业:
```sql
BEGIN
DBMS_SCHEDULER.SET_ATTRIBUTE (
name => 'my_job',
attribute => 'repeat_interval',
value => 'FREQ=WEEKLY;BYDAY=TUE;BYHOUR=14;BYMINUTE=30;BYSECOND=0'
);
END;
```
该代码将修改名为 `my_job` 的调度器作业的重复间隔,将其更改为每周二下午2:30运行一次。
4. 删除一个已存在的调度器作业:
```sql
BEGIN
DBMS_SCHEDULER.DROP_JOB (
job_name => 'my_job'
);
END;
```
该代码将删除名为 `my_job` 的调度器作业。
以上是一些示例,您可以根据您的具体需求使用 `user_scheduler_jobs` 表和相关的调度器存储过程来管理您的调度器作业。
user_scheduler_jobs的jobno是多少
`user_scheduler_jobs` 表中没有 `jobno` 列。或许您想问的是 `job_id`,它是 `user_scheduler_jobs` 表中的一个列,用于标识调度器作业的唯一 ID。`job_id` 列的数据类型是 `VARCHAR2(100)`。
每当您创建一个新的调度器作业时,Oracle 数据库将自动生成一个唯一的 `job_id` 并将其分配给该作业。您可以使用该 ID 来引用作业并执行其他操作,如修改作业的属性、启动或停止作业等。
以下是一个示例查询,该查询将返回 `user_scheduler_jobs` 表中所有调度器作业的名称和 ID:
```sql
SELECT job_name, job_id FROM user_scheduler_jobs;
```
该查询将返回类似以下的结果:
```
JOB_NAME JOB_ID
-------------- --------------------------------------------------
JOB1 1684AFEED3E5C291E0530100007F4B1D
JOB2 1684AFEED3E5C292E0530100007F4B1D
JOB3 1684AFEED3E5C293E0530100007F4B1D
```
其中,`JOB1`、`JOB2`、`JOB3` 是调度器作业的名称,`1684AFEED3E5C291E0530100007F4B1D` 等一长串字符串则是调度器作业的 `job_id`。