Oracle
 sql >> Base de données >  >> RDS >> Oracle

Oracle -- Importer des données dans une table avec un nom différent ?

Si vous utilisez les anciens utilitaires EXP et IMP, vous ne pouvez pas le faire. La seule option est d'importer dans une table du même nom (bien que vous puissiez changer le schéma qui possède la table.

Cependant, vous dites que vous êtes sur 11g. Pourquoi ne pas utiliser l'utilitaire DataPump introduit dans 10g, qui remplace Import et Export. Parce que dans 11g, cet utilitaire offre l'option REMAP_TABLE qui fait exactement ce que vous voulez.

modifier

Après avoir lu les commentaires que l'OP a ajoutés à une autre réponse pendant que j'écrivais ceci, je ne pense pas que l'option REMAP_TABLE fonctionnera dans leur cas. Il ne fait que renommer les nouveaux objets. Si une table portant le nom d'origine existe dans le schéma cible, l'importation échoue avec ORA-39151. Désolé.

modifier bis

Compte tenu de la solution que l'OP a finalement choisie (supprimer la table existante, la remplacer par une nouvelle table), il existe une solution avec Data Pump, qui consiste à utiliser le TABLE_EXISTS_ACTION={TRUNCATE | REPLACE} clause. Choisir REPLACE supprime la table alors que TRUNCATE simplement, euh, le tronque. Dans les deux cas, nous devons nous soucier des contraintes d'intégrité référentielle, mais c'est aussi un problème avec la solution choisie.

Je poste cet addendum non pas pour l'OP mais pour le bénéfice d'autres chercheurs qui trouveront cette page dans le futur.