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;