Cómo mover índices de un tablespace a otro

Puede ocurrir que quieras mover los índices de un usuario de un tablespace a otro por motivos varios. Lo que tienes que hacer es reconstruirlos especificando cual es el tablespace de destino.

Vease, algo así como :

Alter index NOMBRE_INDICE rebuild tablespace TABLESPACE_DE_DESTINO;

Pero como que hacerlo manualmente uno por uno es un poco desagradable aquí te dejo un PL/SQL para hacerlo todo de una tacada:

DECLARE
       CURSOR los_indices IS
            SELECT index_name
	    FROM    user_indexes;
BEGIN
  FOR indice IN los_indices LOOP
    dbms_output.put_line( 'RECONSTRUYENDO INDICE: ' || indice.index_name );
    EXECUTE IMMEDIATE 'alter index '||indice.index_name||' rebuild tablespace TABLESPACE_DE_DESTINO_QUE_TU_QUIERAS_ESPECIFICAR';

  END LOOP;
END;
/
 
ora/mover_index.txt · Última modificación: 2009/02/26 10:22 por juantxu
 
Excepto donde se indique lo contrario, el contenido de esta wiki se autoriza bajo la siguiente licencia:CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki