2026-03-12 20:23:15
This commit is contained in:
44
vdh/p_rebuild_indexes_to_ts.sql
Normal file
44
vdh/p_rebuild_indexes_to_ts.sql
Normal file
@@ -0,0 +1,44 @@
|
||||
create or replace procedure
|
||||
p_rebuild_indexes_to_ts (schema IN dba_extents.owner%type,
|
||||
ts_name IN dba_tablespaces.tablespace_name%type)
|
||||
as
|
||||
v_cursorid integer;
|
||||
status integer;
|
||||
cursor c_dba_extents is
|
||||
select owner,segment_name,
|
||||
tablespace_name,count(*)
|
||||
from dba_extents
|
||||
where owner=upper(schema)
|
||||
and segment_type='INDEX'
|
||||
group by owner,segment_name,tablespace_name;
|
||||
v_dba_extents c_dba_extents%rowtype;
|
||||
begin
|
||||
open c_dba_extents;
|
||||
v_cursorid:=dbms_sql.open_cursor;
|
||||
fetch c_dba_extents into v_dba_extents;
|
||||
if (c_dba_extents%notfound) then
|
||||
dbms_output.put_line('Owner '||
|
||||
upper(schema)||' : '||
|
||||
'Noindexes were to be found for this user.');
|
||||
end if;
|
||||
while ( c_dba_extents%found ) loop
|
||||
dbms_sql.parse(v_cursorid,
|
||||
'ALTER INDEX '||v_dba_extents.owner||'.'||
|
||||
v_dba_extents.segment_name||
|
||||
' REBUILD TABLESPACE '||ts_name,
|
||||
dbms_sql.native);
|
||||
status:=dbms_sql.execute(v_cursorid);
|
||||
dbms_output.put_line('Index Rebuild: '||
|
||||
v_dba_extents.owner||'.'||
|
||||
v_dba_extents.segment_name||' '||ts_name);
|
||||
fetch c_dba_extents into v_dba_extents;
|
||||
end loop;
|
||||
close c_dba_extents;
|
||||
dbms_sql.close_cursor(v_cursorid);
|
||||
exception
|
||||
when others then
|
||||
dbms_output.put_line('Error...... ');
|
||||
dbms_sql.close_cursor(v_cursorid);
|
||||
raise;
|
||||
end p_rebuild_indexes_to_ts;
|
||||
/
|
||||
Reference in New Issue
Block a user