ORA-01031:从存储过程执行重建索引时权限不足

时间:2018-03-22 13:13:39

标签: oracle plsql

当我执行一个具有重建索引的过程时,我在执行重建索引时收到错误消息ora 01031权限不足。

但是当我从SQL开发人员手动执行重建索引时,它会被执行。

  create or replace PROCEDURE MYPROC AS 

    v_table_name VARCHAR2(30):='MY_TABLE';
    v_alterindex VARCHAR2(500);
    v_tspace VARCHAR2(20):='MY_TABLESPACE';


    CURSOR indexes_cur IS 
    select * from user_indexes where TABLE_NAME=v_table_name;

    BEGIN

    FOR index_cur IN indexes_cur
            LOOP
  v_alterindex:= 'ALTER INDEX ' ||  index_cur.INDEX_NAME ||' rebuild online '|| ' TABLESPACE  ' || v_tspace  || ' parallel 8 nologging ';

              DBMS_OUTPUT.put_line ('v_alterindex:'||  v_alterindex);
              EXECUTE IMMEDIATE v_alterindex;
              DBMS_OUTPUT.put_line ('v_alterindex:Done'||  v_alterindex);

              EXECUTE IMMEDIATE 'ALTER INDEX '||  index_cur.INDEX_NAME ||  ' noparallel';
              EXECUTE IMMEDIATE 'ALTER INDEX '||  index_cur.INDEX_NAME ||  ' logging';

              DBMS_OUTPUT.put_line ('Alter index no parallel and logging enabled' );

    END LOOP;

    END MYPROC;

0 个答案:

没有答案