1. 程式人生 > >oracle-儲存過程提示ORA-01031: 許可權不足錯誤解決

oracle-儲存過程提示ORA-01031: 許可權不足錯誤解決

方法1:就這個儲存過程來說,CREATE TABLE想使用CREATE ANY TABLE許可權,而CREATE ANY TABLE許可權來自DBA角色,預設情況下,雖然在會話環境中可見,但在儲存過程中不可見(無效)。
所以根據上面的第一條規則,可以顯示地將CREATE ANY TABLE許可權授予cog就可以了,即
GRANT CREATE ANY TABLE TO COG;

方法2:採用呼叫者許可權,由於過程中使用動態SQL,所以可以避開編譯時的檢查,但在執行時DBA角色生效,即

CREATE OR REPLACE PROCEDURE INSERT_DATA --插入user_客戶ID,套餐表,客戶寬表

(RTN_ID OUT NUMBER, --返回錯誤ID
 RTN_STR OUT VARCHAR --返回錯誤敘述
 ) AUTHID CURRENT_USER IS
...................