user_scheduler_jobs的jobid和dba_jobs的jobno关系
时间: 2023-12-11 08:04:40 浏览: 120
`user_scheduler_jobs` 表中的 `job_id` 和 `dba_jobs` 表中的 `jobno` 没有任何关系,它们是两个完全不同的概念。
- `job_id` 表示调度器作业的唯一标识符,是由 Oracle 数据库自动生成的。您可以使用 `job_id` 来引用调度器作业并执行相关操作,如启动、停止、修改、删除等。
- `jobno` 表示 Oracle 数据库中早期版本(如 Oracle 9i 及更早版本)中使用的作业(job)的唯一标识符。`dba_jobs` 表存储了所有在 Oracle 数据库中定义的作业的信息,包括作业名称、作业类型、作业状态、开始时间、运行间隔等。
在较新的 Oracle 数据库版本中,调度器(scheduler)已经取代了作业(job)的概念。因此,现在建议使用调度器来管理和执行作业,而不是使用旧版本中的作业。如果您使用的是较新的 Oracle 数据库版本,并且需要管理和执行作业,建议使用调度器(scheduler)来完成。
相关问题
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`。
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` 表和相关的调度器存储过程来管理您的调度器作业。
阅读全文