Как распечатать определение процедуры в Oracle?

Есть ли способ оракула посмотреть, что такое структура процедуры? Я пытаюсь войти и запустить процедуры и хотел сохранить фактическую структуру процедуры в моем журнале.

Ответ 1

Вы можете запросить таблицу ALL_SOURCE

SELECT text 
  FROM all_source
 WHERE owner = <<owner of procedure>>
   AND name  = <<name of procedure>>
 ORDER BY line

Если вы имеете дело с процедурой, находящейся внутри пакета

SELECT text 
  FROM all_source
 WHERE owner = <<owner of procedure>>
   AND name  = <<name of procedure>>
   AND type  = 'PACKAGE BODY'
 ORDER BY line

предоставит вам текст тела пакета. Вы также можете получить текст спецификации пакета с помощью TYPE из "ПАКЕТ"

Ответ 2

SELECT TEXT, LINE FROM ALL_SOURCE WHERE 
    NAME = UPPER('$name') -- the table also has an owner field to track the user
    ORDER BY TYPE, -- type is generally procedure, but there are functions and 
                   -- more complex structures as well, such as PACKAGE
    TO_NUMBER( LINE )