Newsgroup: it.comp.software.database
Titolo: [ORACLE] Importare tabelle in un tablespace differente?

Salve,
ho fatto un exp a livello user di un database Oracle 9i R1.
Adesso vorrei importare il file di dump in un altro database Oracle 9i R2 su
un sistema diverso.
Sul nuovo sistema, ho creato un utente yyy con quota illimitata su un nuovo
tablespace.
Ho poi eseguito il comando imp con i parametri fromuser=xxx touser=yyy.
Oracle ha iniziato ad importare i dati, ma subito dopo ho cominciato a
ricevere molti errori mentre cercava di creare alcune tabelle: errori del
tipo "tablespace not existing" o qualcosa di simile.
Dato che questo é un database di testing e non di produzione, vorrei evitare
di ricreare tutte i tablespaces del sistema originale.
Come posso fare per forzare il comando imp ad importare semplicemente tutto
dentro il default tablespace dell'user yyy?
Grazie.

Mentre cercavo di capire la differenza tra una select e un drop database,
guy ha osato scrivere:

Crea prima le tabelle (vuote!) nel db di destinazione, quando poi esegui
l'import usa l'opzione ignore=yes. Questa e' una soluzione un pochino
scomoda, ma sinceramente non so se sia possibile fare diversamente cio'
che vorresti.
ciao

 ciao
meglio cosģ:
il tbs deve avere lo steso nome del db di partenza, ignore=y
visto che ti dirą che non sono nella stessa posizione !
--------------------------------
Inviato via 
http://usenet.libero.it

 .......
Non mi e' ancora mai capitato su 9i, ma da 7.0 a 8.1.7 ha sempre 
funzionato in casi simili: nell'istanza di destinazione imposto la 
*default tablespace* dell'utente ed a quel punto la imp con 
fromuser/touser mette tutto a posto *senza* dover creare prima a mano 
gli oggetti.  Considera che la suite su cui lavoro ha oltre 6000 tra 
tabelle ed indici, tanto per parlare dei soli oggetti con tablespace 
"gestibile", ... e se dovessimo ricrearli a mano ..... 
Il problema, per la mia esperienza, puo' invece essere nelle initial 
dato che spesso le istanze "clone" sono decisamente piu' piccole. Non 
avresti problemi se usassi la auto-allocation ....
Cmq penso che puo' essere utile anche a te DBAtool 
(
http://www.databee.com/dt_home.htm
).
HTH
Byez
Stefano

 (
http://www.databee.com/dt_home.htm
).
Che funzione di quel programma dovrei usare?
Grazie mille.

 visto che ti dirŕ che non sono nella stessa posizione !
Scusatemi ma non ho capito bene, considerate che non ho molta esperienza 
con Oracle. :-)
Come faccio a creare prima le tabelle vuote nel db di destinazione?
Felice, cosa volevi dire che é meglio?
Grazie mille.

 felice_pago wrote:

Per creare prima le tabelle io faccio un'export ROWS=NO che in pratica ti
esporta solo gli statement di creazione degli oggetti. IL file di dump e'
editabile con un editor, dunque con un bel copia/incolla creo un file di
testo su cui modifico i parametri che non mi vanno
bene, per esempio storage, tablespaces ecc. e con uno script sql creo
tutti gli oggetti nel db target. Poi con un nuovo export, stavolta con
ROWS=YES (oltre gli altri parametri che possono essere
necessari) creo il file da cui poi faro' l'import ignore=yes.
Questo modo di lavorare ve bene pero' solo se il numero di
tabelle e' ragionevolmente basso, altrimenti diveti matto a correggere
tutto. Una soluzione piu' elegante consiste nel creare nel db di test un
dblink verso il db master e scegliere se creare tutte le tabelle senza
dati e poi farne un import (ossia create table PIPPO as select * from
PIPPO@dblink where 1=2;) oppure creare e popolare direttamente le tabelle
(create table PIPPO as select * from PIPPO@dblink;).
Spero di essere stato chiaro. ciao

 Grazie mille.
Prego !
Byez
Stefano