job呼叫過程報錯 ORA-00942: table or view does not exist

snowdba發表於2015-04-27
問題描述:
A使用者下建立一個儲存過程proc_1。該儲存過程需要訪問使用者B下的表t1
create table t1 as select * from B.t1

使用者A執行proc_1儲存過程可以成功,但是使用job呼叫該儲存過程報錯ORA-00942:table or view does not exist


問題分析:
儲存過程被job呼叫期間失去了所屬使用者A的許可權(訪問使用者B的表)


解決方法:
1. 顯示授權。應用程式維護人員喜愛這種簡單有效的方法。
grant select any table to A;

2. 在儲存過程中新增關鍵字
CREATE OR REPLACE PROCEDURE proc_1 (name VARCHAR2)   Authid Current_User
AS
BEGIN
EXECUTE IMMEDIATE 'SET ROLE ALL';
...

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29047826/viewspace-1607104/,如需轉載,請註明出處,否則將追究法律責任。

相關文章