#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:
Пара моментов.
-
DBMS_DATAPUMP
может использоваться для экспорта из PLSQL, но выходные файлы дампа экспорта будут находиться в расположении, доступном непосредственно экземпляру базы данных Oracle. -
SYS
«Таблицы» — это в основном представления. Вы могли бы попробоватьVIEWS_AS_TABLES
вариантDBMS_DATAPUMP
. Или создайте таблицы в другой схеме, а затем экспортируйте эти таблицы, например, выполните:
CREATE TABLE myuser.sys_users AS SELECT * FROM sys.all_users
Затем экспортируйте схему MYUSERS.
- 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, чтобы посмотреть, работает ли это.