domingo, 19 de octubre de 2014

Oracle 10g - Mover Tablas a otro Tablespace

El comando para mover tablas de un tablespace a otro es el siguiente:

ALTER TABLE nombre_tabla MOVE TABLESPACE nombre_tablespace

Pero si lo queremos hacer de manera dinamica podemos crear el siguiente script:

DECLARE
   CURSOR ctables
   IS
      (SELECT object_name AS table_name
         FROM user_objects
        WHERE object_type = 'TABLE');
   registro   ctables%ROWTYPE;
   v_sql      VARCHAR2 (255) := ' ';
BEGIN
   OPEN ctables;
    LOOP
        FETCH ctables INTO registro;           
        EXIT WHEN ctables%NOTFOUND;
            v_sql := 'Alter table ' || registro.table_name || '  MOVE TABLESPACE nombre_tablespace';
            EXECUTE IMMEDIATE v_sql;
           DBMS_OUTPUT.put_line (v_sql);
    END LOOP;
   CLOSE ctables;
END;

El anterior PL/SQL es una alternativa dinámica para migrar todas las tablas a un nuevo tablespace.

No hay comentarios:

Publicar un comentario