如何知道Oracle中当前的max job_id值为非dba用户?

时间:2013-07-03 05:23:20

标签: oracle11g jobs

我已经连接到oracle11g作为非dba用户。我需要创建一个新的Oracle Job。在我的作业创建查询中,我需要设置一个与现有dbms_jobs不冲突的唯一“job_id”。我的计划是从整个dbms_jobs中选择job_ids,以便从结果集中我可以确定我的job_id是否存在。 但作为非dba用户,我无法查询dbms_jobs(来自sys.job $)。 我该怎么办?

1 个答案:

答案 0 :(得分:3)

作业由用户创建,因此查询USER_JOBS。这包含该用户的所有工作。

同样,作为DBA用户,您不应该查询JOB$,请使用DBA_JOBS

在11g中,DBMS_JOB仅提供"for backwards compatability"。现在有更强大的DBMS_SCHEDULER代替。

然而,你的问题的前提似乎是有缺陷的。你写过:

  

在我的职位创建查询中,我需要设置一个不具备的唯一“job_id”   与现有的dbms_jobs冲突。我的计划是从中选择job_ids   整个dbms_jobs,以便从结果集中我可以决定我的job_id是   现有与否

DMBS_JOB.SUBMIT()中的作业ID是 OUT 参数。你没有指定这个,包裹会为你做。

declare

   l_job_id number;

begin

   dbms_job.submit( l_job_id, what => ... );

end;