sql >> Database >  >> RDS >> Oracle

Oracle -- Gegevens importeren in een tabel met een andere naam?

Als u de oude EXP- en IMP-hulpprogramma's gebruikt, kunt u dit niet doen. De enige optie is om te importeren in een tabel met dezelfde naam (hoewel u het schema dat eigenaar is van de tabel kunt wijzigen.

U zegt echter dat u op 11g zit. Waarom gebruikt u niet het hulpprogramma DataPump, geïntroduceerd in 10g, dat Import en Export vervangt. Omdat dat hulpprogramma in 11g de REMAP_TABLE-optie biedt die precies doet wat u wilt.

bewerken

Na het lezen van de opmerkingen die de OP aan een ander antwoord heeft toegevoegd terwijl ik dit aan het schrijven was, denk ik niet dat de REMAP_TABLE-optie in hun geval zal werken. Het hernoemt alleen nieuwe objecten. Als er een tabel met de originele naam in het doelschema bestaat, mislukt de import met ORA-39151. Sorry.

bewerk bis

Gezien de oplossing die de OP uiteindelijk heeft gekozen (bestaande tabel verwijderen, vervangen door nieuwe tabel) is er een oplossing met Data Pump, namelijk het gebruik van de TABLE_EXISTS_ACTION={TRUNCATE | REPLACE} clausule. Kiezen voor REPLACE laat de tabel vallen terwijl TRUNCATE alleen, eh, kapt het af. In beide gevallen moeten we ons zorgen maken over referentiële integriteitsbeperkingen, maar dat is ook een probleem met de gekozen oplossing.

Ik plaats dit addendum niet voor de OP maar ten behoeve van andere zoekers die deze pagina ergens in de toekomst zullen vinden.



  1. Cassandra gebruiken in plaats van memcache?

  2. Hoe u de naam van de supervisor kunt krijgen in plaats van de gebruikers-ID + INNER JOIN in MYSQL

  3. mySQL - overeenkomende Latijnse (Engelse) formulierinvoer met utf8 (niet-Engelse) gegevens

  4. Print resultaten in MySQL-formaat met Python