Datapump table_exists_action

Um parâmetro de import do datapump que muitas pessoas não conhecem é o table_exists_action. Esse parâmetro é utilizado para definir uma ação quando o impdp encontra uma tabela existente na base que seta sofrendo import, e que está selecionada para importação no corpo da string (seja por owner, tabela ou tablespace) Existem 4 cláusulas para esse parâmetro; SKIP:  ignora a importação da tabela (padrão default quando não se utiliza o parâmetro  table_exists_action); APPEND:  acrescenta os dados do import na tabela existente; REPLACE:  dropa tabela, e depois recria e popula com os dados do import; TRUNCATE:  simplesmente deleta as linhas da tabela e mantém a estrutura, para então popular com os dados do import.

impdp dumpfile=backup.dat directory=DIR_PUMP schemas=SCOTT  table_exists_action=REPLACE

Esse parâmetro é interessante quando se sabe que a quantidade de tabelas que serão importadas é a mesma existente. Se não for o caso, é mais interessante dropar os objetos, pois o parâmetro table_exists_action não excluirá as tabelas que não sofrerão import. Outro detalhe importante está na cláusula TRUNCATE. Se a estrutura da tabela a ser importada foi alterada, então é necessário utilizar REPLACE ao invés de TRUNCATE.

%name Datapump table exists action

Autor: Bruno Zehetmeyr bruno.zehe

Bacharel em Ciência da Computação pela UNORP-SP, Pós-graduado em Administração de Sistemas de Informação pela UFLA-MG e pós-graduado em Administração de Banco de Dados Oracle pela VERIS-SP. Analista DBA na Teiko Soluções em TI e professor universitário no Centro Universitário de Brusque – UBIFEBE. Certificado OCP 10g e OCP 11g, OCE Linux. Residente em Blumenau-SC.