Como mover un indice de tipo LOB a un tablespace diferente

La sintaxis para mover un índice de un tablespace a otro se realiza de la siguiente manera:

alter index OWNER.INDEX_NAME rebuild tablespace TABLESPACE_DE_DESTINO;

Para calcular cuánto espacio se necesita disponible para mover este segmento de tipo índice, se puede utilizar la siguiente consulta:

select sum(bytes)/1024/1024 "Tamaño_en_MB"
from dba_extents
where segment_name ='INDEX_NAME';


Pero para los índices de tipo LOB que están asociados a una columna de la tabla que fue creada con este segmento es necesario utilizar la siguiente consulta para determinar que índice debemos mover:

select 'alter table '||owner||'.'||table_name||' move '||chr(10)|| 'LOB ('||column_name||') store as '||'(tablespace TABLESPACE_DE_DESTINO);'
from dba_lobs
where owner ='ESQUEMA_A_MOVER';


Output:

alter table OWNER.TABLE_NAME move lob (COLUMNA_DE_TIPO_LOB) store as (tablespace TABLESPACE_DE_DESTINO);

Si no es utilizado este método para mover el índice de tipo lob al nuevo tablespace, Oracle nos entrega el siguiente error:

ORA-02327: cannot create index on expression with datatype LOB

VIVA LINUX!!!!
Alberto Silva Gallardo.

Comentarios

Publicar un comentario

Entradas populares de este blog

Eliminar procesos MySQL que están en estado SLEEP por determinado tiempo

Formatear la salida en SQL*Plus