Вы не говорите, какую версию базы данных вы используете. Это важная информация, потому что новые функции добавляются в Oracle с каждым выпуском. Например, в 10g Oracle представила новую утилиту, DataPump, которая заменяет старые IMP и EXP (эти утилиты все еще включены в установку, они просто устарели).
Одна из замечательных особенностей DataPump заключается в том, что мы можем выполнять как из базы данных, так и из командной строки ОС. Недавно я опубликовал пример использования DataPump из PL / SQL в этой SO-теме . Oracle предоставляет полную документацию .
1010 * редактировать *
Ни устаревший IMP / EXP, ни DataPump не генерируют файл SQL (*). Если это действительно то, что вам нужно (в отличие от простого переноса схемы и данных как-то ), то все становится немного сложнее. У Oracle есть пакет DBMS_METADATA , который мы можем использовать для создания сценариев DDL, но он не будет работать с данными. Чтобы генерировать реальные операторы INSERT, лучше всего использовать IDE; Quad TOAD сделает это так же, как и Oracle (бесплатный) SQL Developer tool . Обе IDE также будут генерировать для нас сценарии DDL.
(*) Импорт Datapump может извлекать операторы DDL из предыдущего файла экспорта Datapump, используя параметр SQLFILE=
. Но это только структура, а не данные.