如何在Oracle SQL中列出架构中的所有表?

推荐答案

要查看其他架构中的所有表,您需要具有以下一个或多个系统权限:

SELECT ANY DICTIONARY
(SELECT | INSERT | UPDATE | DELETE) ANY TABLE

或者大锤子,DBA的角色.

使用其中任一选项,您可以 Select :

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'

Sql相关问答推荐

判断Pyspark生成的SQL查询

如何在不更改S代码的情况下,判断存储过程调用了多少次clr函数?

PostgreSQL:使用JSONB中的字段使用jsonb_to_Records()填充记录

Oracle PL/SQL:解决DBMS输出大小限制的问题

从类似JSON的字符串列创建新列

按两列分组,并根据SQL中的条件返回第三个列值

用VB.NET在Dapper中实现MS Access数据库顺序透视

统计PostgreSQL中前10个最大大小表的行数

如何在android房间中进行多个加入

不同计数的 Postgres PIVOT 表

MySQL中的递归查询邻接表深度优先?

如何向 mariadb 添加外键?

Postgresql:在链接表中判断相关表中插入值的条件

将varchar (7)列转换为datetime

根据行号将列转置为没有任何id或键列的行

PostgreSQL:通过数组的元素从另一个表中 Select 数据,然后按顺序显示

将 MERGE 语句与 Oracle PL/SQL 表类型一起使用时,导致无效数据类型错误的原因是什么?

我如何编写一个遍历数组数组并将所有值连接成一个字符串的 postgres 函数

如何刷新在视图之上创建的表

如何优化sql请求?