select 'alter table ' || do.owner || '.' || do.object_name ||
       ' move tablespace TARGET_TS;' as cmd_to_invoke 
from dba_objects do, dba_segments ds, dba_tables dt
where do.owner=ds.owner and do.owner=dt.owner
  and do.object_name = ds.segment_name and do.object_name=dt.table_name
  and dt.iot_name is null and do.object_type='TABLE'
  and ds.tablespace_name = 'DMSPACE';

select distinct 'alter table ' || dt.table_owner || '.' || dt.table_name ||
        ' move partition ' || dt.partition_name ||
                             ' tablespace DMSPACE_tmp' || ';' as cmd_to_invoke 
from
     dba_tab_partitions dt
where dt.tablespace_name='DMSPACE'
order by 1;

spool Z:\oracle\scripts\index.sql
select 'alter table ' || owner || '.' || table_name || ' move tablespace DMSPACE_tmp;'
from dba_indexes
where tablespace_name='DMSPACE';
spool off

set linesize 400 pages 600 trimspool on numwidth 14 
spool Z:\oracle\scripts\index_2.sql
select 'alter index ' || do.owner || '.' || do.object_name || ' rebuild tablespace DMSPACE_tmp;' as cmd
from dba_objects do, dba_segments ds, dba_indexes di
where ds.tablespace_name='DMSPACE'
  and do.owner=ds.owner and do.owner=di.owner
  and do.object_type = 'INDEX'
  and di.index_type in('NORMAL', 'FUNCTION-BASED NORMAL')
  and do.object_name = ds.segment_name and do.object_name = di.index_name ;



select distinct 'alter table ' || dtc.owner || '.' || dtc.table_name || 
   ' move lob(' || column_name || ')' ||
   ' store as (tablespace DMSPACE);' as cmd_to_invoke
from dba_tab_columns dtc,
     dba_tables dt,
     dba_indexes di
where dt.owner=dtc.owner and dt.owner=di.owner
  and dt.table_name=di.table_name and dt.table_name=dtc.table_name
  and dtc.data_type like '%LOB%'
  and di.index_name in 
     (select segment_name from dba_segments inner 
      where inner.owner=dt.owner and tablespace_name='DMSPACE_TMP') 

