Post recomendado: Exportanto tabelas vazias no Oracle 11 através do ‘exp’

1 Comentário

Já precisei deste conteúdo várias vezes, então não custa nada recomendar o post:

EXPORTANDO TABELAS VAZIAS COM O EXP NO ORACLE 11

No Oracle 11 tem um parâmetro (deferred_segment_creation) que indica ao SGBD para não alocar segmentos no banco de dados enquanto uma tabela está vazia. A configuração padrão de instalação é ativo (TRUE).
Desta forma, quem utiliza o utilitário “exp” para exportar as informações do banco de dados, observa que todas as tabelas vazias não são geradas no arquivo de exportação, e em alguns casos isto é um problema.
Para resolver esta situação existem algumas procedimentos que podem ser feitos. O primeiro é trocar a exportação do “exp” pelo utilitário “expdp”.
Outra forma é desativar esta opção através dos comandos ALTER SESSION e ALTER SYSTEM, deixando este parâmetro com o valor FALSE.

ALTER SYSTEM SET deferred_segment_creation=FALSE;

Entretanto, esta segunda opção somente irá valer para as tabelas criadas após a execução do comando.
Para resolver esta situação nas tabelas já criadas e vazias podemos utilizar a seguinte instrução:

ALTER TABLE nome_da_tabela ALLOCATE EXTENT;

Fonte: SQL Brasil

A minha dica vai para o caso de você querer realizar o ALTER TABLE em todas as tabelas do seu OWNER. Para isso, basta executar o select abaixo, copiar o resultado completo e executar:

SELECT 'ALTER TABLE ' || TABLE_NAME || ' ALLOCATE EXTENT;'
  FROM DBA_TABLES
 WHERE UPPER(OWNER) = 'SEU_OWNER'
 ORDER BY TABLE_NAME

O resultado deverá ser algo deste tipo:

Downloads do blog via 4Shared

Deixe um comentário

Há algum tempo o 4Shared está exigindo que os usuários façam login para baixar os arquivos, e acho que por isso alguns visitantes do meu site não estão conseguindo baixar os arquivos que disponibilizo.

Disponibilizei novamente todos os arquivos do meu blog no DropBox. Veja abaixo a lista de artigos com opção para download e os novos links.

1. Dica: Código Hexadecimal das Cores

2. Exemplo de Implementação de IDisposable

3. Entity Framework: Mudando a ConnectionString de um ObjectContext em runtime

4. Extension Methods no C#

5. LINQ Extensions

6. LINQ e Lambda Expression: OrderBy em vários campos

7. String Vs. StringBuilder

8. Entity Framework + TransactionScope

9. Programando Threads em C# e VB.NET

10. Passar parâmetros para Threads

11. Dica: Usar o WCF Test Client sem Visual Studio instalado

 

Dica: Descobrir CONSTRAINTS desabilitadas no Oracle

Deixe um comentário

Select para descobrir os objetos desabilitados no Oracle

SELECT CONS.INDEX_NAME,
       CONS.CONSTRAINT_NAME,
       CONS.CONSTRAINT_TYPE,
       COLS.TABLE_NAME,
       COLS.COLUMN_NAME,
       COLS.POSITION,
       CONS.STATUS,
       CONS.OWNER
  FROM ALL_CONSTRAINTS CONS
 INNER JOIN ALL_CONS_COLUMNS COLS
    ON CONS.CONSTRAINT_NAME = COLS.CONSTRAINT_NAME
   AND CONS.OWNER = COLS.OWNER
 WHERE UPPER(CONS.STATUS) != 'ENABLED'
   AND UPPER(CONS.OWNER) = 'SEU_OWNER'
   -- A LINHA ACIMA PODE SER ELIMINADA PARA
   -- QUE TODOS OS OBJETOS INVÁLIDOS SEJAM
   -- LISTADOS, INDEPENDENTE DO OWNER
  ORDER BY COLS.TABLE_NAME, COLS.POSITION;