sql >> Databasteknik >  >> RDS >> Oracle

Oracle -- Importera data till en tabell med ett annat namn?

Om du använder de gamla EXP- och IMP-verktygen kan du inte göra detta. Det enda alternativet är att importera till en tabell med samma namn (även om du kan ändra schemat som äger tabellen.

Men du säger att du är på 11g. Varför inte använda DataPump-verktyget som introduceras i 10g, som ersätter Import och Export. För i 11g erbjuder det verktyget alternativet REMAP_TABLE som gör precis vad du vill.

redigera

Efter att ha läst kommentarerna som OP lade till i ett annat svar medan jag skrev detta, tror jag inte att alternativet REMAP_TABLE kommer att fungera i deras fall. Den byter bara namn på nya objekt. Om en tabell med det ursprungliga namnet finns i målschemat misslyckas importen med ORA-39151. Förlåt.

redigera bis

Givet den lösning som OP till slut valde (släpp befintlig tabell, ersätt med ny tabell) finns det en lösning med Data Pump, som är att använda TABLE_EXISTS_ACTION={TRUNCATE | REPLACE} klausul. Välj REPLACE släpper tabellen medan TRUNCATE bara, eh, avkortar det. I båda fallen måste vi oroa oss för referensintegritetsbegränsningar, men det är också ett problem med den valda lösningen.

Jag lägger upp det här tillägget inte för OP utan till förmån för andra sökare som hittar den här sidan någon gång i framtiden.



  1. OPENJSON "Felaktig syntax nära nyckelordet 'med'." i SQL Server (LÖST)

  2. MySQL :Begäran om att göra ett JSON-objekt med Array

  3. Databasstorleksberäkning?

  4. Använda endast tangentbordsnavigering i Word, Excel och PowerPoint (Del 2:Dialogrutor)