Pergunta

Eu uso o Toad para fazer meu desenvolvimento PL/SQL. No Toad, quando digito um nome de procedimento e pressiono F4, posso ver o código -fonte deste procedimento. Eu acho que o Toad obtém o código -fonte da visualização v $ sqltext. Para confirmar meu pensamento, escrevi uma consulta:

select * from v$sqltext

Mas quando eu executo a consulta superior, o Oracle me dá um erro:

ORA -00942: Tabela ou exibição não existe 00942. 00000 - "Tabela ou exibição não existe" *Causa:
*Ação: Erro na linha: 29 Coluna: 15

Então, acho que o Toad obtenha a fonte do procedimento de outro lugar em vez da visualização v $ sqltext. Alguém pode me contar sobre isso? Ótimo obrigado.

Foi útil?

Solução

A consulta completa para um procedimento armazenado (não em um pacote):

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

Se você estiver conectado como usuário myschema, você pode usar user_source:

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

Outros valores para o tipo são:

  • Tipo de corpo
  • FUNÇÃO
  • ACIONAR
  • MODELO
  • Fonte Java
  • Corpo da embalagem
  • PACOTE

Outras dicas

select * from all_source

Consulte Referência de banco de dados para All_source e V $ sqltext.

Se você tiver selecionado Priv em tabelas DBA*, verifique select * from dba_source. Esta tabela terá todo o código -fonte.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top