执行某个存储过程时报错:ORA-01031: insufficient privileges。 调试存储过程,发现在存储过程运行到创建表的这一步时出错,意即没有权限创建表,但实际上执行这个存储过程的用户是有创建表的权限的,在网上查找同样的错误信息,发现基本上都是登陆数据库的时候报这个错误,并没有执行存储过程中报这个错误的案例。 请教同事...
执⾏存储过程报错——ora-01031:权限不⾜ 1. 执⾏DDL报错 在oracle存储过程中,默认是可以直接执⾏DML和DQL的,但是执⾏CREATE这种的DDL则需要借助EXECUTE IMMEDIATE ···了,如下备份表语句 --抄表表备份 SELECT TO_CHAR(SYSDATE,'YYMMDD') INTO V_DQRQ FROM DUAL;V_CREATESQL :='CREATE TABLE ...
⽤户具有dba权限,但在执⾏⼀个存储过程时提⽰“ORA-01031: 权限不⾜”,该过程中存在动态SQL“execute immediate。。。”正是这⾥报的错误。1、ORACLE默认为定义者权限,定义者权限在存储过程中ROLE⽆效,需要显⽰授权。2、如果使⽤AUTHID CURRENT_USER关键字使⽤调⽤者权限,则编译时ROLE⽆...
当执行该语句时,提示ORA-01031: 权限不足。该用户已赋予DBA权限。 原因:CREATE TABLE想使用CREATE ANY TABLE权限,而CREATE ANY TABLE权限来自DBA角色,默认情况下,虽然在会话环境中可见,但在存储过程中不可见(无效)。 即:ORACLE默认为定义者权限,定义者权限在存储过程中ROLE无效,需要显式授权。 GRANTCREATEANYTABLETO...
在使用存储过程进行建表时,提示没有权限 :ORA-01031: insufficient privileges 如下图所示 存储过程代码如下: CREATE OR REPLACE PROCEDURE sp_test IS v_sql VARCHAR2(500); ---备份表 v_sql := 'create table t_test as select * from user_tables' ; EXECUTE IMMEDIATE...
我用scott用户创建了一个存储过程,创建成功后我调用改存储过程,就提示我权限不足,是怎么回事锕 ,有谁帮解决一下下锕我的存储过程如下:create or replace procedure xu_create isv_a varchar2(20):='&输入表名称';v_b varchar2(20):='&输入表的字段';...
dbms_job调用存储过程ALTER操作报ORA-01031 通常情况下,DML/DDL在命令行执行时没有任何问题,在存储过程中调用时会显示ora-01031,报错的解析如下: $ oerr ora 1031 01031, 00000, "insufficient privileges" // *Cause: An attempt was made to change the current username or password...
执行存储过程ORA-01031: insufficient privileges解决 简介: 以下存储过程编译正常,其中的SQL语句在PLSQL执行也正常,但是在存储过程中执行即报告错误:ORA-01031: insufficient privileges。 create or replace procedure DBA_REBUILD_INDEX As Begin execute immediate 'alter index PK_DUBAI_STORAGE_OUT_MANIFEST rebuild ...
存储过程中建表无权限ORA-01031: insufficient privileges 1、新建一存储过程 create or replace procedure pro_gz_day_report as p_sql varchar2(30000); ---处理报表的sql语句 num number; begin ---先删除数据 execute immediate 'truncate table gz_teacher_day_sms';...
我的存储过程如下:create or replace procedure xu_create isv_a varchar2(20):='&输入表名称';v_b varchar2(20):='&输入表的字段';v_c varchar2(20):='&输入表的字段';v_sql varchar2(2000);beginv_sql:='create table '||v_a||'('||v_b||' varchar2(20),'||v_c||' varchar2(20...