就像MySQL有“SHOW TABLES”一样,你如何计算Oracle DB中的表。一点点研究给了我这个问题:
select owner, count(*) from dba_tables
所以像MySQL有一个标准命令,Oracle有一个吗?
答案 0 :(得分:37)
答案 1 :(得分:20)
是的,确定您的查询可以正常修改它。在这里寻找参考:http://download.oracle.com/docs/cd/B19306_01/server.102/b14237/statviews_2105.htm#i1592091
运行:
SELECT TABLE_NAME FROM DBA_TABLES;
获取表格列表。
并运行此:
SELECT Count(*) FROM DBA_TABLES;
获取表的数量。
答案 2 :(得分:8)
选择count(*)FROM all_tables,其中owner ='schema_name'
答案 3 :(得分:2)
这些文档描述了数据字典视图:
all_tables:http://docs.oracle.com/cd/B19306_01/server.102/b14237/statviews_4473.htm#REFRN26286
user_tables:http://docs.oracle.com/cd/B19306_01/server.102/b14237/statviews_2105.htm#i1592091
dba_tables:http://docs.oracle.com/cd/B19306_01/server.102/b14237/statviews_4155.htm#i1627762
您可以对这些视图运行查询以计算您的需求。
为@Anurag Thakre的回答添加更多内容:
使用此查询,它将为您提供实际的计数数 业主
SELECT COUNT(*),tablespace_name FROM USER_TABLES group by tablespace_name;
或由表所有者:
SELECT COUNT(*), owner FROM ALL_TABLES group by owner;
表空间本身不识别唯一对象所有者。多个用户可以在同一个表空间中创建对象,单个用户可以在各种表空间中创建对象。 将表和索引分成不同的表空间是一种常见的做法。
答案 4 :(得分:2)
如果您想要所有者列表以及每位所有者的表数,请尝试:
SELECT distinct owner, count(table_name) FROM dba_tables GROUP BY owner;
答案 5 :(得分:1)
请在下面找到 - 这是我用过的最简单的一个:
select owner, count(*) from dba_tables group by owner;
答案 6 :(得分:1)
如果您想知道属于某个模式/用户的表的数量,还可以使用类似于以下内容的SQL:
SELECT Count(*) FROM DBA_TABLES where OWNER like 'PART_OF_NAME%';
答案 7 :(得分:0)
REM setting current_schema is required as the 2nd query depends on the current user referred in the session
ALTER SESSION SET CURRENT_SCHEMA=TABLE_OWNER;
SELECT table_name,
TO_NUMBER (
EXTRACTVALUE (
xmltype (
DBMS_XMLGEN.getxml ('select count(*) c from ' || table_name)),
'/ROWSET/ROW/C'))
COUNT
FROM dba_tables
WHERE owner = 'TABLE_OWNER'
ORDER BY COUNT DESC;
答案 8 :(得分:-1)
使用此查询可以获得与表所有者相关的实际计数
SELECT COUNT(*),tablespace_name FROM USER_TABLES group by tablespace_name;
答案 9 :(得分:-1)
select COUNT(*) from ALL_ALL_TABLES where OWNER='<Database-name>';
.....
答案 10 :(得分:-1)
此查询将查找特定模式中的所有对象
select owner, object_type, count(*) from dba_objects where owner='owner_name' group by owner, object_type order by 3 desc;