Oracle
 sql >> Database >  >> RDS >> Oracle

Oracle -- Importare dati in una tabella con un nome diverso?

Se stai usando le vecchie utilità EXP e IMP non puoi farlo. L'unica opzione è importare in una tabella con lo stesso nome (sebbene tu possa cambiare lo schema che possiede la tabella.

Tuttavia, dici di essere su 11g. Perché non utilizzare l'utilità DataPump introdotta in 10g, che sostituisce Importa ed Esporta. Perché in 11g quell'utilità offre l'opzione REMAP_TABLE che fa esattamente quello che vuoi.

modifica

Dopo aver letto i commenti che l'OP ha aggiunto a un'altra risposta mentre stavo scrivendo questo, non credo che l'opzione REMAP_TABLE funzionerà nel loro caso. Rinomina solo nuovi oggetti. Se nello schema di destinazione esiste una tabella con il nome originale, l'importazione non riesce con ORA-39151. Scusa.

modifica bis

Data la soluzione che l'OP ha finalmente scelto (elimina la tabella esistente, sostituiscila con una nuova tabella) esiste una soluzione con Data Pump, che consiste nell'usare il TABLE_EXISTS_ACTION={TRUNCATE | REPLACE} clausola. Scegliendo REPLACE elimina la tabella mentre TRUNCATE semplicemente, ehm, lo tronca. In entrambi i casi dobbiamo preoccuparci dei vincoli di integrità referenziale, ma questo è anche un problema con la soluzione scelta.

Pubblico questo addendum non per l'OP ma a beneficio di altri ricercatori che troveranno questa pagina in futuro.