关于pl/sql存储程序文本的问题

Jus*_*ner 2 oracle toad plsql stored-procedures ora-00942

我使用TOAD进行PL/SQL开发.在TOAD中,当我输入程序名称并按f4时,我可以看到此程序的源代码.我认为TOAD从v $ sqltext视图中获取源代码.为了证实我的想法,我写了一个查询:

select * from v$sqltext
Run Code Online (Sandbox Code Playgroud)

但是当我执行上层查询时,Oracle给出了一个错误:

ORA-00942:表或视图不存在00942. 00000 - "表或视图不存在"*原因:
*操作:行错误:29列:15

所以我认为TOAD从其他地方而不是v $ sqltext视图获取程序的源代码.谁能告诉我这件事?十分感谢.

Ton*_*ews 7

存储过程的完整查询(不在包中):

select text
from   all_source
where  owner = 'MYSCHEMA'
and    type = 'PROCEDURE'
and    name = 'MY_PROCEDURE'
order by line;
Run Code Online (Sandbox Code Playgroud)

如果您以用户MYSCHEMA身份连接,则可以使用USER_SOURCE:

select text
from   user_source
where  type = 'PROCEDURE'
and    name = 'MY_PROCEDURE'
order by line;
Run Code Online (Sandbox Code Playgroud)

TYPE的其他值包括:

  • TYPE BODY
  • 功能
  • 触发
  • 类型
  • JAVA来源
  • 包装身体