Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Oracle -- Daten in eine Tabelle mit einem anderen Namen importieren?

Wenn Sie die alten Dienstprogramme EXP und IMP verwenden, können Sie dies nicht tun. Die einzige Möglichkeit besteht darin, in eine Tabelle mit demselben Namen zu importieren (obwohl Sie das Schema ändern könnten, dem die Tabelle gehört.

Sie sagen jedoch, Sie sind auf 11g. Warum nicht das in 10g eingeführte Dienstprogramm DataPump verwenden, das Import und Export ersetzt. Denn in 11g bietet dieses Dienstprogramm die Option REMAP_TABLE, die genau das tut, was Sie wollen.

bearbeiten

Nachdem ich die Kommentare gelesen habe, die das OP zu einer anderen Antwort hinzugefügt hat, während ich dies geschrieben habe, glaube ich nicht, dass die Option REMAP_TABLE in ihrem Fall funktionieren wird. Es benennt nur neue Objekte um. Wenn im Zielschema eine Tabelle mit dem ursprünglichen Namen vorhanden ist, schlägt der Import mit ORA-39151 fehl. Entschuldigung.

Bearbeiten

Angesichts der Lösung, die das OP schließlich gewählt hat (vorhandene Tabelle löschen, durch neue Tabelle ersetzen), gibt es eine Lösung mit Data Pump, die den TABLE_EXISTS_ACTION={TRUNCATE | REPLACE} Klausel. Wählen Sie REPLACE löscht die Tabelle, während TRUNCATE lediglich, äh, kürzt es. In beiden Fällen müssen wir uns um Einschränkungen der referenziellen Integrität kümmern, aber das ist auch ein Problem der gewählten Lösung.

Ich veröffentliche diesen Nachtrag nicht für das OP, sondern zugunsten anderer Suchender, die diese Seite irgendwann in der Zukunft finden.