2010-07-07 17 views
5

Voglio creare uno script sql in grado di ricreare un DB che ho già. Voglio ricreare il DB senza dati all'interno.Oracle che esporta SQL della struttura del database

Quindi c'è comunque con sqlplus di esportare un DB di un utente?

+0

Si desidera solo un'esportazione DDL? Cioè lo schema DB senza i dati in esso contenuti? –

risposta

7

Ci sono due approcci di base.

Il primo è esportare un file di dettagli. Questo può essere con l'utilità DataPump:

$ expdp apc/pw directory=data_dump_dir dumpfile=apc_20100707.dmp content=METADATA_ONLY 

Find out more.

Datapump è stato introdotto in Oracle10g. Nelle versioni precedenti del database potevamo usare l'utilità EXP per fare la stessa cosa.

$ exp apc/pw dumpfile=apc_20100707.dmp rows=N 

Per importare il file usiamo le corrispondenti impdp (o imp) utilità.

Questo è l'approccio del sistema operativo. Per generare gli script SQL effettivi, è possibile utilizzare il pacchetto DBMS_METADATA integrato, introdotto in Oracle 9i. Questo è un po 'più di lavoro ma offre un controllo molto più preciso sui dettagli degli oggetti esportati. Find out more.

10

Da this blog post, sembra che ci sia un pacchetto chiamato dbms_metadata che può generare SQL create table. Esempio:

set pagesize 0 
set long 90000 
set feedback off 

set echo off 
spool filename.sql 
connect username/password; 
SELECT DBMS_METADATA.GET_DDL('TABLE',u.table_name) 
    FROM USER_TABLES u; 
SELECT DBMS_METADATA.GET_DDL('INDEX',u.index_name) 
    FROM USER_INDEXES u; 
spool off; 
2

È inoltre possibile utilizzare SQL Developer per creare script sql, come descritto here.

Problemi correlati