Сохранить тело пакета и спецификации - PullRequest
1 голос
/ 17 мая 2019

Использование инструмента SQLDeveloper и попытка использовать функцию «Сохранить тело пакета и спецификации», чтобы создать файл экспорта с содержимым тела пакета и спецификации в одном файле. Но при этом файл создается с пустым или пустым содержимым. Чего-то не хватает, чтобы выполнить некоторые настройки, чтобы сделать это возможным?

-

Я ожидаю, что функциональность экспорта будет работать

1 Ответ

2 голосов
/ 17 мая 2019

Мы выполняем два запроса, чтобы это «волшебство» произошло.

Если вы пользователь с высоким уровнем привилегий, доступ к представлениям DBA_, мы запускаем это (это намного быстрее, чем представления ALL_)

SELECT 'CREATE OR REPLACE ' || text source,
       line
  FROM dba_source
 WHERE owner = :owner
   AND name = :name
   AND line = 1
   AND type = 'PACKAGE'
UNION ALL
SELECT text,
       line
  FROM dba_source
 WHERE owner = :owner
   AND name = :name
   AND line != 1
   AND type = 'PACKAGE'
 ORDER BY line

И затем мы запускаем это:

SELECT 'CREATE OR REPLACE ' || text source,
       line
  FROM dba_source
 WHERE owner = :owner
   AND name = :name
   AND line = 1
   AND type = 'PACKAGE BODY'
UNION ALL
SELECT text,
       line
  FROM dba_source
 WHERE owner = :owner
   AND name = :name
   AND line != 1
   AND type = 'PACKAGE BODY'
 ORDER BY line

Ваш полученный файл будет иметь код CREATE или REPLACE для SPEC, за которым следует символ '/', а затем то же самое для BODY.

Если у вас есть пользователь с меньшими привилегиями, мы выполним в основном тот же запрос, но с представлениями ALL_.

Вы генерируете код из собственной или чужой схемы?

Какую версию SQL Developer и Oracle вы используете?

Попробуйте вопросы ниже и посмотрите, что вы получите.

Вы можете увидеть, что мы делаем для себя, наблюдая за панелью «Просмотр - Журнал» и разделом «Заявления»:

enter image description here

...