quarta-feira, 10 de setembro de 2008

Mover objetos entre esquemas oracle

SELECT 'ALTER TABLE nome_do_esquema.' || table_name || ' MOVE TABLESPACE nome_do_novo_tablespace;'
FROM dba_tables
WHERE
owner = 'nome_do_esquema';

SELECT 'ALTER INDEX nome_do_esquema.' || index_name || ' REBUILD TABLESPACE nome_do_novo_tablespace;'
FROM dba_indexes
WHERE
owner = 'nome_do_esquema' AND
index_type != 'LOB';

SELECT
'ALTER TABLE nome_do_esquema.' || table_name ||
' MOVE LOB( ' || COLUMN_NAME ||
' ) STORE AS (TABLESPACE nome_do_novo_tablespace);'
FROM dba_tab_columns
WHERE
owner = 'nome_do_esquema' AND
data_type LIKE '%LOB';