вопрос о сохраненном тексте программы pl/sql
-
20-09-2019 - |
Вопрос
Я использую 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
.В этой таблице будет весь исходный код.