【问题标题】:question about pl/sql stored program text关于pl/sql存储程序文本的问题
【发布时间】:2010-12-17 19:06:57
【问题描述】:
我使用 TOAD 进行 PL/SQL 开发。在 TOAD 中,当我键入过程名称并按 f4 时,我可以看到该过程的源代码。我认为 TOAD 从 v$sqltext 视图中获取源代码。为了证实我的想法,我写了一个查询:
select * from v$sqltext
但是当我执行上面的查询时,Oracle 给我一个错误:
ORA-00942: 表或视图没有
存在
00942. 00000 - “表或视图不存在”
*原因:
*操作:行错误:29 列:15
所以我认为 TOAD 从其他地方而不是 v$sqltext 视图获取过程的源代码。任何人都可以告诉我这件事吗?非常感谢。
【问题讨论】:
标签:
oracle
stored-procedures
plsql
toad
ora-00942
【解决方案1】:
存储过程的完整查询(不在包中):
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 源代码
- 包体
- 包
【解决方案3】:
如果您在 DBA* 表上选择了 priv,请查看 select * from dba_source。此表将包含完整的源代码。