天天看點

存儲過程中ORA-01031: insufficient privileges的解決方法

執行某個存儲過程時報錯:ORA-01031: insufficient privileges。

  調試存儲過程,發現在存儲過程運作到建立表的這一步時出錯,意即沒有權限建立表,但實際上執行這個存儲過程的使用者是有建立表的權限的,在網上查找同樣的錯誤資訊,發現基本上都是登陸資料庫的時候報這個錯誤,并沒有執行存儲過程中報這個錯誤的案例。

  請教同僚之後得到解決方法,在存儲過程中添加如下内容即可:Authid Current_User,修改後的存儲過程結構如下:

CREATE OR REPLACE PROCEDURE P_RES_F_UD_FLOW(TIME_DAY IN NUMBER) Authid Current_User AS

  ERR_DESC    VARCHAR2(32767);
  V_SQL_ERROR VARCHAR2(32767);

BEGIN

EXECUTE IMMEDIATE 'CREATE TABLE T_RES_F_UD_FLOW_TMP_1
(
  COVER_NAME  VARCHAR2(200) not null,
  TIME_TYPE   INTEGER,
  TIME_DAY    NUMBER(8),
  TIME_HOUR   NUMBER(2),
  GPRS_FLOW   FLOAT,
  TD_FLOW     FLOAT,
  WLAN_FLOW   FLOAT
)';

END P_RES_F_UD_FLOW;      

---END;

轉載于:https://www.cnblogs.com/chenz/articles/2345881.html