0

When I execute a procedure which is having rebuild index, I get the error message ora 01031 insufficient privileges when executing rebuild index.

But when I manually execute the rebuild index from SQL developer it gets execute.

  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;
TomJava
  • 499
  • 1
  • 8
  • 24

0 Answers0