- Identificar os tipos de obxectos que queres mover
No meu caso táboas e índices (TABLE e INDEX) - Identificar a sentencia a executar para mover un só dos obxectos
No caso das táboas - No caso dos índices
ALTER INDEX owner.name REBUILD TABLESPACE nuevoTbs
- Obter todas as sentencias de xeito fácil e reproducible, usamos a vista DBA_SEGMENTS para ver qué obxectos hai no tablespace que queremos eliminar, usamos a función decode para escoller o resultado que desexamos
select decode(obj.segment_type,
'TABLE','ALTER TABLE '||obj.owner||'.'||obj.segment_name ||' MOVE TABLESPACE nuevoTbs;',
'INDEX','ALTER INDEX '||
obj.owner||'.'||obj.segment_name ||' REBUILD TABLESPACE nuevoTbs;',
'--objeto ' || obj.segment_type ||'-'||
obj.owner||'.'||obj.segment_name||' no especificado')
from dba_segments obj
where obj.tablespace_name = 'antigoTbs'
and obj.segment_type IN ('TABLE','INDEX') - Podemos usar calquer ferramenta gráfica e exportar os resultados ou simplemente un spool para levalos a un ficheiro de texto, logo só nos quedaría executalo con sqlplus ou a ferramente que desexemos, sería bo tamén facer un spool a un ficheiro para ter constanza do resultado da execución
ALTER TABLE owner.name MOVE TABLESPACE nuevoTbs
Así mesmo poderiamos usar este mesmo método para mover os obxectos dun usuario, ou que cumplan unha determinada condición ou o que queramos, o que se pode facer só depende do que nos imaxinemos que podemos facer :D
Agardo que vos sexa de axuda
No hay comentarios:
Publicar un comentario