我是一名Oracle新手,想要查找由用户“john”创建的所有表。
我通过以下命令行连接到Oracle数据库:
sqlplus john/passwd
如何列出特定用户(例如john)创建的所有表?
这将获取所有由“JOHN”用户拥有的表:
SELECT * FROM USER_TABLES;
或者SELECT * FROM ALL_TABLES WHERE OWNER = 'JOHN';
([简而言之] 'JOHN'
通常需要大写。 假设用户使用 CREATE USER john ...
语句创建了 john
,则 Oracle 的默认行为是将所有对象名称(即表、列、用户等)转换为大写。 当您查询数据字典时,表详细信息将以此方式存储(而不是原始命令中使用的大小写,除非您将其用双引号括起来)。)
要列出表格,您可以使用
SELECT * FROM ALL_TABLES WHERE OWNER = 'JOHN';
SELECT sum(bytes)
FROM dba_segments
WHERE owner = 'JOHN'
既然您已经作为模式所有者登录,您也可以使用
SELECT SUM(bytes)
FROM user_segments
select * from
USER_TABLES;
select table_name
from USER_TABLES;
您也可以使用
select * from
USER_TABLES;
尝试:
select *
from all_tables
where owner = 'jhon';
'JOHN'
- MT0
ALL_ALL_TABLES
以获取所有内容。 - William Robertson