rem ********************************************************************** rem * Description : Script to list the allocated and unused bytes for rem * : tables or indexes as well as create a script to rem * : deallocate this unused space rem * Author : Les Corbett rem ********************************************************************** accept Owner prompt "Owner : " accept Type prompt "TABLE/INDEX : " accept Seg_name prompt "Segment Name : " accept Keep prompt "Keep eg 2k : " set verify off set serveroutput on spool &Type._unused.list declare op1 number; op2 number; op3 number; op4 number; op5 number; op6 number; op7 number; segment_name varchar2(30); begin dbms_output.enable(1000000); dbms_space.unused_space('&Owner','&Seg_name','&Type', op1,op2,op3,op4,op5,op6,op7); dbms_output.put_line('REM '||'&Seg_name'); dbms_output.put_line('REM Total Bytes = '||op2); dbms_output.put_line('REM Unused Bytes = '||op4); if (op4 < 102400) then dbms_output.put_line('alter &Type '||'&Seg_name'|| ' deallocate unused keep &Keep;'); else dbms_output.put_line('alter &Type '||'&Seg_name'|| ' deallocate unused keep 50K;'); end if; end; / spool off