2012-08-06 17 views
6

Ho una copia di un enorme database Oracle, quindi è impossibile importarlo tutto. Voglio importare una tabella specifica chiamata X. Il problema è che X ha chiavi esterne. Se importare solo X, mi metterò il seguente errore:Importa tabelle specifiche dal file di dump di Oracle?

imp user/[email protected] tables=X rows=y ignore=Y 
ORA-02291: integrity constraint violated - parent key not found 

ho già tutto il db a livello locale (ma senza dati), voglio importare tutte le tabelle che sono associati a X. Come posso raggiungere questo obiettivo ? Ho installato plsql. Devo anche conoscere l'ordine di queste tabelle per sapere quale importare in un primo momento.

risposta

1

Ci sono alcune domande così cercherò di rispondere uno per uno.

ORA-02291: integrity constraint violated - parent key not found 

Nessun gioco da ragazzi per indovinare questo perché, come sapete non si dispone di record padre per la tavola X. Tra l'altro si potrebbe anche voler utilizzare bandiera CONSTRAINTS=N perché avete già db come hai detto.

"Voglio importare tutte le tabelle associate a X. Come posso ottenerlo?"

Bene nessuna opzione se non trovare manualmente tutte le dipendenze (o utilizzare le tabelle del dizionario dati user_cons_columns, user_constraints ecc.) E importare anche quelle tabelle. Pensaci se non lo fai. Romperai la tua integrità dei dati. Se vuoi ancora quei dati nella tabella X senza dipendenze, disabilita i vincoli e poi importa. Ma non potrai più abilitare il vincolo e non so cosa vuoi fare con i dati non funzionanti.

"Ho anche bisogno di sapere l'ordine di queste tabelle per sapere quale importare in un primo momento."

Disabilitare i vincoli prima dell'importazione e quindi abilitarli dopo l'importazione. Non devi preoccuparti per l'ordine in quel caso.