Oracle SQL Developer может экспортировать DDL через Tools -> Database Export...
Это работает очень хорошо, но требует ручного вмешательства.
Я знаю DBMS_METADATA.get_ddl()
, но обнаружил, что экспорт не идеален. Я столкнулся с проблемами, когда экспортированный DBMS_METADATA
DDL был недоступен для использования без предварительного устранения проблем, таких как разрывы в середине ключевого слова и, что еще хуже. Однако, если кто-то знает способ экспорта DDL через него, DMBS_METADATA
который можно запустить без ручного исправления, это тоже было бы отличным решением.
По сути, я ищу автоматический / скриптовый способ экспорта DDL, идентичный тому, который экспортируется ручным способом.
Как я могу это сделать?
COL
, как показано в этом примере , и это будет работать.Ответы:
Хорошо, если sqlplus запирает ваш вывод dbms_metadata.get_ddl, почему бы не выбрать вывод в CLOB и записать CLOB в файловую систему.
например
Это должно привести вас к правильному DDL, без ошибок. Единственное, что скрипт будет создан на сервере БД, а не на клиенте, откуда вы вызываете sqlplus.
Сценарий сохраняется в каталоге, указанном в записи «DATA_PUPM_DIR» на сервере БД. т.е.
Более того, вы можете добавить некую разновидность итерации по всем таблицам / индексам и т. Д. Схемы и мгновенно получить DDL полной схемы. Я делаю это все время.
источник
Причина, по которой у вас возникли проблемы,
dbms_metadata.get_ddl
заключается в том, что он выводит файлыCLOB
размером до 4 ГБ. По умолчанию SQL * Plus и Oracle SQL Developer усекают длинный текст, чтобы они не заполняли клиента большими объемами текста.Это очень легко переопределить это поведение в SQL * Plus с помощью нескольких
SET
команд и получить чистый DDL.Сценарий, который вам нужен:
источник
Следующие преобразования могут помочь. Я не использовал метод DBMS_XSLPROCESSOR.CLOB2FILE, но я использовал его для переноса базы данных Oracle из Solaris в Linux. Я не мог использовать насос данных из-за версии Oracle, которую они использовали, и того факта, что они использовали типы данных XML для типов данных столбцов.
источник