天天看点

存储过程中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