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?
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?
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
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.
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;
È inoltre possibile utilizzare SQL Developer per creare script sql, come descritto here.
Si desidera solo un'esportazione DDL? Cioè lo schema DB senza i dati in esso contenuti? –