Oracle экспортирует SQL структуры базы данных - PullRequest
6 голосов
/ 07 июля 2010

Я хочу создать сценарий sql, который может воссоздать БД, которая у меня уже есть.Я хочу воссоздать БД без данных внутри.

Так есть ли в sqlplus экспорт БД пользователя?

Ответы [ 3 ]

11 голосов
/ 07 июля 2010

Из этого сообщения в блоге , похоже, существует пакет под названием dbms_metadata, который может генерировать create table SQL. Пример:

 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;
7 голосов
/ 07 июля 2010

Существует два основных подхода.

Первый - экспортировать файл дампа. Это может быть с утилитой Datapump:

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

Узнать больше .

Datapump был представлен в Oracle10g. В более ранних версиях базы данных мы могли использовать утилиту EXP для того же.

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

Для импорта файла мы используем соответствующие impdp (или imp) утилиты.

Это подход ОС. Для генерации реальных SQL-скриптов мы можем использовать встроенный пакет DBMS_METADATA, представленный в Oracle 9i. Это немного больше работы, но предлагает гораздо более точный контроль над деталями экспортируемых объектов. Узнайте больше .

2 голосов
/ 07 июля 2010

Вы также можете использовать SQL Developer для создания сценариев sql, как описано здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...