我需要获取仅由用户创建(不拥有)的对象的所有源代码,因此我创建了此查询:
SELECT s.owner,
s.name,
s.TYPE,
s.line,
s.text
FROM sys.dba_source s, sys.dba_users u
WHERE s.owner = u.username
AND u.default_tablespace NOT IN ('SYSTEM', 'SYSAUX')
但我仍然发现从oracle自动创建的对象,例如我的用户有一个TRIGGER calle APEX $ _WE_ROWS ...,我从未创建过。 APEX应该是Oracle Express提供的SUFIX。
有什么想法吗?
提前谢谢。
答案 0 :(得分:0)
据我所知,Oracle没有在字典中保留创建者。但您可以使用dba_objects
:
SELECT s.owner,
s.name,
s.TYPE,
s.line,
s.text,
o.created,
o.last_ddl_time
from sys.dba_source s, sys.dba_users u,
sys.dba_objects o
where s.owner = u.username
and u.default_tablespace not in ('SYSTEM', 'SYSAUX')
and s.owner = o.owner and s.name = o.object_name and s.type = o.object_type;
created
和last_ddl_time
可以帮助您区分系统代码和用户代码。