Проблема с запросом SqlPlus (спецификация пакета и тело) - PullRequest
5 голосов
/ 08 августа 2011

Я пытаюсь получить спецификацию пакета и тело из sqlplus, делая так ..

select text from all_source
where name = 'PACK_JACK'
order by line;

но я получаю только его тело, а не спецификацию ... что я должен изменить, чтобы получить их обоихкак один файл .. Спасибо

Ответы [ 2 ]

7 голосов
/ 08 августа 2011

В представлении all_source есть столбец TYPE. Тип может иметь 2 значения - «PACKAGE» и «PACKAGE BODY». Таким образом, чтобы получить спецификацию,

select text from all_source
where name = 'PACK_JACK'
and type = 'PACKAGE'
order by line;

и получить тело

select text from all_source
where name = 'PACK_JACK'
and type = 'PACKAGE BODY'
order by line;

Кроме того, вместо использования all_source вы можете использовать user_source. all_source включает в себя все, включая системные пакеты. USER_SOURCE имеет только определенные пользователем пакеты.

3 голосов
/ 08 августа 2011

Чтобы получить тело пакета, вы запускаете:

select text from all_source
where name = 'PACK_JACK'
  and type = 'PACKAGE BODY'
order by line;

В отличие от:

select text from all_source
where name = 'PACK_JACK'
  and type = 'PACKAGE'
order by line;

Но, скорее всего, у вас нет права видеть тело пакета.Поэтому он скрыт от таблицы ALL_SOURCE.

...