如何列出Oracle sql中模式中的所有表?
要查看另一个模式中的所有表,您需要具有以下一个或多个系统特权:
SELECT ANY DICTIONARY (SELECT | INSERT | UPDATE | DELETE) ANY TABLE
或大锤,DBA角色。
有了这些,你可以选择:
SELECT DISTINCT OWNER,OBJECT_NAME FROM DBA_OBJECTS WHERE OBJECT_TYPE = 'TABLE' AND OWNER = '[some other schema]'
没有这些系统特权,您只能看到您已被授予某种级别的访问权限的表,无论是直接还是通过角色。
SELECT DISTINCT OWNER,OBJECT_NAME FROM ALL_OBJECTS WHERE OBJECT_TYPE = 'TABLE' AND OWNER = '[some other schema]'
最后,您可以随时查询数据字典中您自己的表,因为您的表的权限不能撤销(从10g):
SELECT DISTINCT OBJECT_NAME FROM USER_OBJECTS WHERE OBJECT_TYPE = 'TABLE'