我是Oracle的新手,希望找到用户'john'创建的所有表。
我通过命令行通过以下命令连接到Oracle数据库:
sqlplus john/passwd
如何列出给定用户创建的所有表格,例如约翰?
答案 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;