您可以查询ALL_OBJECTS视图:
select owner,object_name,object_type
from ALL_OBJECTS
where object_name = 'FOO'
寻找同义词:
select *
from ALL_SYNONYMS
where synonym_name = 'FOO'
只是为了澄清,如果用户用户的sql语句引用了没有模式限定的对象名称(例如“FOO”),则Oracle FIRST会检查用户的模式以查找该名称的对象(包括该用户模式中的同义词).如果Oracle无法从用户的架构中解析引用,那么Oracle会检查一个公共的同义词.
如果您正在专门针对特定table_name的约束:
select c.*
from all_constraints c
where c.table_name = 'FOO'
union all
select cs.*
from all_constraints cs
join all_synonyms s
on (s.table_name = cs.table_name
and s.table_owner = cs.owner
and s.synonym_name = 'FOO'
)
HTH
– 附录:
如果您的用户被授予访问DBA_视图(例如,如果您的用户被授予SELECT_CATALOG_ROLE),则可以在前面的sql示例中替换“DBA_”代替“ALL_”. ALL_x视图只显示您已被授予权限的对象. DBA_x视图将显示所有数据库对象,无论您是否拥有权限.