Вопрос

Я использую TOAD для разработки PL/SQL.В TOAD, когда я набираю имя процедуры и нажимаю f4, я вижу исходный код этой процедуры.Я думаю, что TOAD получает исходный код из представления v$sqltext.Для подтверждения своей мысли я написал запрос:

select * from v$sqltext

но когда я выполняю верхний запрос, Oracle выдает мне ошибку:

ОРА-00942:Таблица или представление не существует 00942.00000 - «Таблица или представление не существует» *Причина:
*Действие:Ошибка в строке:29 Столбец:15

Поэтому я думаю, что TOAD получает источник процедуры из другого места вместо представления v$sqltext.Кто-нибудь может мне рассказать об этом?Большое спасибо.

Это было полезно?

Решение

Полный запрос хранимой процедуры (не в пакете):

select text
from   all_source
where  owner = 'MYSCHEMA'
and    type = 'PROCEDURE'
and    name = 'MY_PROCEDURE'
order by line;

Если вы подключены как пользователь MYSCHEMA, вы можете использовать USER_SOURCE:

select text
from   user_source
where  type = 'PROCEDURE'
and    name = 'MY_PROCEDURE'
order by line;

Другие значения TYPE:

  • ТИП КОРПУСА
  • ФУНКЦИЯ
  • КУРОК
  • ТИП
  • ИСТОЧНИК ЯВА
  • КОРПУС УПАКОВКИ
  • УПАКОВКА

Другие советы

select * from all_source

См. Справочник по базе данных для ВСЕ_ИСТОЧНИК и В$SQLТЕКСТ.

Если у вас есть select priv в таблицах DBA*, обязательно проверьте select * from dba_source.В этой таблице будет весь исходный код.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top