列出Oracle中给定用户的所有表

时间:2016-07-12 11:57:25

标签: sql oracle oracle11g

我是Oracle的新手,希望找到用户'john'创建的所有表。

我通过命令行通过以下命令连接到Oracle数据库:

sqlplus  john/passwd

如何列出给定用户创建的所有表格,例如约翰?

5 个答案:

答案 0 :(得分:8)

这将获得" JOHN"的所有表格。用户是所有者:

SELECT * FROM USER_TABLES;

SELECT * FROM ALL_TABLES WHERE OWNER = 'JOHN';

([TL; DR] 'JOHN'通常需要大写。假设用户john是使用CREATE USER john ...语句创建的,那么Oracle'默认行为是将所有对象名称(即表,列,用户等)转换为大写。当您查询数据字典时,表格详细信息将存储在这种情况下(而不是您在原始命令中使用的情况)除非你用双引号括起来。)

答案 1 :(得分:3)

列出您可以使用的表格

SELECT * FROM ALL_TABLES WHERE OWNER = 'JOHN';

查看可以使用的架构的大小

SELECT sum(bytes)
  FROM dba_segments
 WHERE owner = 'JOHN'

由于您以架构所有者身份登录,因此您也可以使用

SELECT SUM(bytes)
  FROM user_segments

答案 2 :(得分:1)

您也可以使用

select * from 
USER_TABLES;

无论如何,你可以在这里找到所有数据字典解释https://docs.oracle.com/cd/B28359_01/server.111/b28310/tables014.htm

答案 3 :(得分:0)

尝试:

select *
from all_tables
where owner = 'jhon';

答案 4 :(得分:0)

select * from 
USER_TABLES;

上面的代码将显示当前连接的用户下的表的所有信息。这可能在您的SQL终端中很混乱

要仅查看用户下的表名,应使用以下代码

select table_name 
from USER_TABLES;
相关问题