Сценарий Oracle таблиц (DDL) с операторами вставки данных в один / несколько файлов SQL - PullRequest
0 голосов
/ 01 апреля 2011

Мне нужно экспортировать таблицы для заданной схемы, в сценарии DDL и операторы Insert - и сделать так, чтобы этот сценарий сохранял порядок зависимостей / ограничений.

Я наткнулся на эту статью, предлагающую, как архивировать базу данных с данными - http://www.dba -oracle.com / t_archiving_data_in_file_structures.htm - не уверен, применима ли статья к оракулу 10g / 11g.

Я видел функции «экспорта таблицы с данными» в «Sql Developer», «Toad for Oracle», «DreamCoder для Oracle» и т. Д., Но мне нужно было бы делать эту одну таблицу за раз, ивсе равно нужно будет определить правильный порядок выполнения скрипта вручную.

Существуют ли какие-либо инструменты / сценарии, которые могут использовать метаданные оракула и генерировать сценарий DDL с данными?

Обратите внимание, что в некоторых таблицах есть столбцы типов данных CLOB - поэтому инструмент / сценарий должен иметь возможность обрабатывать эти столбцы.

PS Мне нужно что-то похожее на «Генерирование сценариев»особенность в SQL Server 2008, где можно указать параметр «данные сценария» и получить самодостаточный сценарий с DDL и данными, сгенерированными в порядке ограничений таблиц.Пожалуйста, смотрите: http://www.kodyaz.com/articles/sql-server-script-data-with-generate-script-wizard.aspx

Спасибо за вашу помощь!

Ответы [ 2 ]

3 голосов
/ 01 апреля 2011

Во-первых, осознайте, что это не обязательно возможно.Представление может использовать функцию в пакете, которая также выбирает из представления.Другая проблема заключается в том, что вам может потребоваться загрузить данные в таблицы, а затем применить ограничения, даже если это будет медленнее, чем наоборот.

Короче говоря, здесь вам нужно будет поработать.

Определите зависимости в вашей системе.ALL_DEPENDENCIES является основным механизмом.

Затем используйте DBMS_METADATA.GET_DDL, чтобы извлечь операторы DDL.Для небольших объемов данных я бы выделил ограничения отдельно для применения после загрузки данных.

В текущих версиях вы можете создавать внешние таблицы для выгрузки данных из обычных таблиц в файлы ОС (очевидно, идти наоборот).Но если у вас есть экзотические типы данных (BLOB, RAW, XMLTYPEs, определяемые пользователем типы ....), это будет более сложным.

2 голосов
/ 01 апреля 2011

Я предлагаю вам использовать стандартный экспорт и импорт Oracle (exp / imp) здесь, есть ли причина, по которой вы не будете это рассматривать?Кроме того, обратите внимание, что вы можете использовать опцию «indexfile» в импорте, чтобы выводить операторы SQL (к сожалению, они не включают вставки) в файл, вместо того, чтобы фактически выполнять их.

...