3

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

select * from v$sqltext

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

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

所以我认为 TOAD 从其他地方而不是 v$sqltext 视图获取过程的源代码。任何人都可以告诉我这件事吗?十分感谢。

4

3 回答 3

8

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

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 的其他值是:

  • 正文
  • 功能
  • 扳机
  • 类型
  • JAVA源
  • 包体
  • 包裹
于 2009-11-18T10:09:42.780 回答
2

select * from all_source

请参阅ALL_SOURCEV$SQLTEXT的数据库参考。

于 2009-11-18T09:17:52.150 回答
1

如果您在 DBA* 表上选择了 priv,那么请检查select * from dba_source. 该表将包含完整的源代码。

于 2009-11-18T09:41:17.257 回答