如何在Oracle中找到对象的OWNER?
发布时间:2020-12-12 13:47:44 所属栏目:百科 来源:网络整理
导读:我想找到一个表的外键,但是可能有多个用户/模式与一个具有相同名称的表.我如何找到当前登录的用户看到的用户?有没有给它的主人的功能?如果有公共同义词怎么办? 您可以查询ALL_OBJECTS视图: select owner,object_name,object_type from ALL_OBJECTS where
我想找到一个表的外键,但是可能有多个用户/模式与一个具有相同名称的表.我如何找到当前登录的用户看到的用户?有没有给它的主人的功能?如果有公共同义词怎么办?
您可以查询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视图将显示所有数据库对象,无论您是否拥有权限. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |