我以非 dba 用户的身份连接到 oracle11g。我需要创建一个新的 Oracle 作业。在我的工作创建查询中,我需要设置一个与现有 dbms_jobs 不冲突的唯一“job_id”。我的计划是从整个 dbms_jobs 中选择 job_ids,以便从结果集中我可以确定我的 job_id 是否存在。但作为非 dba 用户,我无法查询 dbms_jobs(来自 sys.job$)。我应该怎么办?
问问题
459 次
1 回答
3
作业是由用户创建的,因此 query USER_JOBS
。这具有该用户的所有工作。
JOB$
同样,作为 DBA 用户,您不应该查询DBA_JOBS
.
在 11g 中,DBMS_JOB
仅提供“向后兼容”。现在有更强大的DBMS_SCHEDULER
代替。
但是,您的问题的前提似乎有缺陷。你写过:
在我的工作创建查询中,我需要设置一个与现有 dbms_jobs 不冲突的唯一“job_id”。我的计划是从整个 dbms_jobs 中选择 job_ids 以便从结果集中我可以确定我的 job_id 是否存在
作业 ID inDMBS_JOB.SUBMIT()
是一个OUT参数。你不分配这个,如果为你,包会这样做。
declare
l_job_id number;
begin
dbms_job.submit( l_job_id, what => ... );
end;
于 2013-07-03T05:44:17.367 回答