當USER = SYS時,我在程序包中返回一個特殊值的函數。 我在Scheduler中安排了一項工作,每天執行一次。出於奇怪的原因,我在某些數據庫實例上出現錯誤,指出USER並非真正的SYS,但是<SCHEMA>。 我正在使用Oracle SQL數據庫11g版本。Oracle調度程序作業執行程序,或者在作業運行期間誰是用戶
從我的測試中,我發現只有一種方法是如何在Job中擁有不同的USER。當用戶直接由用戶USER = <SCHEMA>安排作業時。問題是,這是不太可能的情況,因爲通常所有的腳本都是在SYS下執行的。
請你能解釋一下Job「執行者」的決心是如何運作的嗎?有沒有辦法通過PL/SQL腳本來確定作業執行者是誰?你能指導我一個文檔,它會描述它嗎?
非常感謝你的這種快速響應!如果我現在正確地得到它,那麼當我在SCHEMA1下有USER = SYS創建的Job1時,執行程序是SYS,當Job2由SCHEMA1下的USER = SCHEMA1創建時,執行程序是SCHEMA1(當Job2 JOB_ACTION ='DBMS_OUTPUT.PUT_LINE('登錄用戶:'|| USER);'它會返回SCHEMA1) 問題是,我沒有機會查詢USER。 OPERATION = RUN is ALL_SCHEDULER_JOB_LOG.USER_NAME = null。對於OPERATION <> RUN是USER_NAME不再爲null,但這些值早已不存在,導致自動日誌處置。 – Javo
剛剛找到ALL_SCHEDULER_JOBS,它有JOB_CREATOR – Javo