Как экспортировать схему таблицы разработчика Oracle sql с помощью сценариев pl / sql?

#oracle #plsql #scripting #oracle-sqldeveloper

#Oracle #plsql #сценарии #oracle-sqldeveloper

Вопрос:

все знают, как экспортировать схему таблицы с помощью мастера экспорта, но как я могу экспортировать их с помощью скрипта pl / sql?

Например, я хочу экспортировать все схемы таблиц, которые начинаются с «SYS» (например: SYS_ROLE, SYS_USER_ROLE, SYS_USER и т.д.) Большое спасибо!!

Комментарии:

1. Вы имеете в виду экспортировать DDL или экспортировать данные? Куда вы хотите экспортировать? PL / SQL выполняется только на сервере базы данных; вы не можете «экспортировать» напрямую клиенту, если не переведете символьный вывод скрипта в файл журнала.

2. Обычно вы экспортируете, вызывая expdp в сценарии операционной системы — сценарий оболочки для * nix, сценарий cmd для Windblows. Почему вы хотите сделать это в PL / SQL? И почему вы хотите экспортировать схему SYS? Мне кажется, вы применяете неправильный подход к решению неправильной проблемы.

Ответ №1:

Пара моментов.

  1. DBMS_DATAPUMP может использоваться для экспорта из PLSQL, но выходные файлы дампа экспорта будут находиться в расположении, доступном непосредственно экземпляру базы данных Oracle.

  2. SYS «Таблицы» — это в основном представления. Вы могли бы попробовать VIEWS_AS_TABLES вариант DBMS_DATAPUMP . Или создайте таблицы в другой схеме, а затем экспортируйте эти таблицы, например, выполните:

CREATE TABLE myuser.sys_users AS SELECT * FROM sys.all_users

Затем экспортируйте схему MYUSERS.

  1. SQL Developer export записывает данные из просматриваемой таблицы данных в различные форматы в виде локального файла. Я не знаю наверняка, но обработка команд разработчика SQL также используется SQLCI. В SQLCI вы можете настроить вывод в нескольких форматах, включая CSV, понимает те же команды, что и SQLCI.

Смотрите эту страницу здесь:

https://oracle-base.com/articles/misc/sqlcl-format-query-results-with-the-set-sqlformat-command

Таким образом, хотя это и не PLSQL, вы могли бы записывать запросы в виде сценариев SQL, задав соответствующую SQLFORMAT опцию SPOOL в локальный файл, и это должно сработать. Вы также можете попробовать запустить это в SQL * Developer, чтобы посмотреть, работает ли это.