Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Oracle -- Importar dados para uma tabela com um nome diferente?


Se você estiver usando os antigos utilitários EXP e IMP, não poderá fazer isso. A única opção é importar para uma tabela com o mesmo nome (embora você possa alterar o esquema que possui a tabela.

No entanto, você diz que está no 11g. Por que não usar o utilitário DataPump introduzido no 10g, que substitui o Import and Export. Porque no 11g esse utilitário oferece a opção REMAP_TABLE que faz exatamente o que você deseja.

editar

Depois de ler os comentários que o OP adicionou a outra resposta enquanto escrevia isso, não acho que a opção REMAP_TABLE funcione no caso deles. Ele apenas renomeia novos objetos. Se existir uma tabela com o nome original no esquema de destino, a importação falhará com ORA-39151. Desculpe.

editar bis

Dada a solução que o OP finalmente escolheu (descartar a tabela existente, substituir por uma nova tabela), existe uma solução com o Data Pump, que é usar o TABLE_EXISTS_ACTION={TRUNCATE | REPLACE} cláusula. Escolhendo REPLACE descarta a tabela enquanto TRUNCATE meramente, er, trunca-o. Em ambos os casos, temos que nos preocupar com restrições de integridade referencial, mas isso também é um problema com a solução escolhida.

Eu posto este adendo não para o OP, mas para o benefício de outros buscadores que encontrarem esta página em algum momento no futuro.