当我执行一个具有重建索引的过程时,我在执行重建索引时收到错误消息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;