如何获取我在oracle数据库中的每个表中的行数

时间:2015-04-15 19:22:03

标签: oracle sqlplus rowcount

有人能告诉我如何在oracle数据库中获取每个表中的行数吗?我发现了几个查询,但是没有一个查询,因为我使用的是oracle 7和sql plus 3.2,基本上我找到的所有内容都不起作用。我只需要一些适用于sql 加上3.2。

的东西

必需:

表名行

表1 0

表2 5

...

是否可以用循环之类的东西来做?或者我到底应该做什么?

2 个答案:

答案 0 :(得分:1)

如果SELECT table_name, num_rows from all_tables无法满足您的需求。

您可以使用动态SQL并计算为选择的Rahul。

运行以下内容以获取在所有表上动态构建联合的结果,然后按照自己的查询运行结果以获得最终结果。

SELECT 'SELECT ' ||t.name || ' as tName, count(*) as Row_Cnt  
        FROM ' || t.name || ' UNION ALL '
FROM ALL_TABLES t

请务必删除最后一个查询的最后一个union语句。

另请注意:如果您无权查看该表,则该列表中不会显示该内容!

---更新------ 因此,如果all_tables不存在,则这些都不起作用。因为我没有方便的oracle 7实例...你能看到SELECT * FROM dictionary是否返回任何可能产生所有表的列表的东西吗?如果您找到视图或表对象,请使用它代替上面的all_tables。

我现在正在阅读oracle 7的文档,但发现很容易搜索。因此,猜测和检查方法可能会更快。

答案 1 :(得分:0)

最简单的解决方案是使用count()函数。像

这样的东西
select 'table1' as table_name,
count(*) as number_of_rows
from table1