2013-07-03 48 views
0

我已經連接到oracle11g作爲非dba用戶。我需要創建一個新的Oracle作業。在我的作業創建查詢中,我需要設置與現有的dbms_jobs不衝突的唯一「job_id」。我的計劃是從整個dbms_jobs中選擇job_ids,以便從結果集中我可以決定我的job_id是否存在。 但作爲非dba用戶,我無法查詢dbms_jobs(從sys.job $)。 我該怎麼辦?如何知道Oracle中的當前max job_id值是非dba用戶?

回答

3

作業是由用戶創建的,因此查詢USER_JOBS。這有這個用戶的所有工作。

同樣,作爲DBA用戶,您不應該查詢JOB$,請使用DBA_JOBS

在11g中,DBMS_JOB僅提供"for backwards compatability"。現在有更強大的DBMS_SCHEDULER來代替。

但是,您的問題的前提似乎有缺陷。你寫的:

在我的創造就業機會的查詢,我需要設置一個唯一的「作業ID」是做與現有DBMS_JOBS不 衝突。我的計劃是從 整個DBMS_JOBS選擇job_ids因此從結果集,我可以決定我的JOB_ID是 現有的或不

作業ID在DMBS_JOB.SUBMIT()OUT參數。你不分配這個,這個軟件包會爲你做。

declare 

    l_job_id number; 

begin 

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

end; 
相關問題