Oracle如何查看表空间内有哪些存储过程?

2025-03-23 04:24:17
推荐回答(4个)
回答1:

SELECT a.owner,
a.segment_name,
b.OBJECT_NAME -- 存储过程名
From dba_segments a,
DBA_OBJECTS b
WHERE a.tablespace_name = '表空间名称'
and trim(a.owner) = trim(b.OWNER)
and b.OBJECT_TYPE = 'PROCEDURE' --对象类型:存储过程

一般查看的时候就用owner.OBJECT_NAME就是完整存储过程名

回答2:

可以通过dba权限进行以下方法查询。
方法一(简单查询定位到所有的存储过程):
select * from DBA_objects where object_type='PROCEDURE' ;
方法二(复杂查询直接定位到表空间):

SELECT * from dba_segments a, DBA_OBJECTS b WHERE a.tablespace_name = 'tablespace' and trim(a.owner) = trim(b.owner ) and b.OBJECT_TYPE = 'PROCEDURE'

回答3:

表空间里保存的是segment而不是存储过程,存储过程包括function,package,procedure,trigger等等,通过表空间是找不到任何存储过程的
查dba_objects这个字典吧,具体看object_type

回答4:

SELECT * FROM Dba_Procedures a WHERE a.owner = '实例名'