我使用TOAD进行PL / SQL开发。在TOAD中,当我输入程序名称并按f4时,我可以看到此程序的源代码。我认为TOAD从v $ sqltext视图中获取源代码。为了证实我的想法,我写了一个查询:
select * from v$sqltext
但是当我执行上层查询时,Oracle给了我一个错误:
ORA-00942:表格或视图没有 存在 00942. 00000 - “表或视图不存在” *原因:
*动作:行错误:29列:15
所以我认为TOAD从其他地方而不是v $ sqltext视图获取程序的源代码。谁能告诉我这件事?非常感谢。
答案 0 :(得分:7)
存储过程的完整查询(不在包中):
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的其他值为:
答案 1 :(得分:2)
select * from all_source
请参阅ALL_SOURCE和V$SQLTEXT的数据库参考。
答案 2 :(得分:1)
如果您在DBA *表上选择了priv,那么请查看select * from dba_source
。该表将包含完整的源代码。