【问题标题】:How do I get the number of rows in each table I have in my oracle database如何获取我的 oracle 数据库中每个表的行数
【发布时间】:2015-06-21 22:20:47
【问题描述】:

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

必填:

表名行

表 1 0

表 2 5

...

是否可以使用循环之类的方法来做到这一点?或者我到底应该怎么做?

【问题讨论】:

  • 你为什么还在使用oracle 7?有什么东西阻止你升级到更现代的东西。 Oracle 7 来自 '92...
  • SELECT table_name, num_rows from all_tables 这些是数据库引擎用来确定最佳执行路径的表统计信息,它们不是 100%,但通常足够接近。另请注意, all_tables 仅限于您有权查看的内容。如果您没有对该表的权限,您将无法在结果中看到该表/记录数。
  • 这就是我想要做的。我正在尝试从 oracle 7 更新到 10g 或 11g,但是在升级之前我需要在数据库中弄清楚很多事情,这样我就不会搞砸了,因为它是一家公司的数据库。我只需要知道哪些表是无用的并且我可以删除。他们有大约 370 个表,我确信他们只使用了大约 50 个左右的表,所以我需要删除其余的表,然后我将自己对新数据库做出反应。
  • 这个“可能”是相关的......但是 7 个文档阅读起来很痛苦,搜索起来更痛苦。 stackoverflow.com/questions/2247310/…

标签: oracle sqlplus rowcount


【解决方案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

请务必删除最后一个查询中的最后一个联合语句。

另请注意:如果您无权查看该表,它将不会出现在此列表中!

---已更新 ------ 因此,如果 all_tables 不存在,这些都不起作用。由于我手边没有 oracle 7 实例...您能否查看SELECT * FROM dictionary 是否返回任何可能生成所有表列表的内容?如果您发现视图或表格对象,请使用它代替上面的 all_tables。

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

【讨论】:

  • 请注意,这个问题是关于 Oracle 7(!)。 Oracle 7 甚至有优化器统计信息和 num_rows 列吗?
  • 我尝试了 num_rows 列,但它总是给我空答案。我尝试使用 DBMS_STATS 更新它,但它说必须首先声明 DBM_STATA。此外,我尝试对您编写的查询进行类似的查询,但也没有成功。 SQL PLUS 代码:select 'select count(*) from '||所有者 || '。' ||表名 || ';'从 dba_tables where owner = 'xxxx' order by table_name;
  • 你是对的,这更像是 > 7 的答案。我还没有找到 7 中存在系统表的证据。 7 甚至有一个字典来列出您可以查询Select * from dictionary where table_name like '%TABLE%' 的可用系统对象吗?
  • 在 Oracle 7 中,All_tables 确实存在,但问题在于 num_rows 而不是 All_tables。它只是返回 null 并且当我尝试使用我在网上找到的 DBMS_STATS 时。它说必须先声明。我不知道 from 字典,但我认为这不会有什么不同,因为我的问题在于计算行数或使用 num_rows 并且它们都不起作用。
  • 我打算让您查看字典以查看 7 中是否存在包含表列表的不同系统表。如果所有表都在那里并且可以工作,那么用于生成然后运行的选择语句的选择不起作用似乎很奇怪。
猜你喜欢
  • 2021-06-17
  • 1970-01-01
  • 1970-01-01
  • 2018-04-02
  • 1970-01-01
  • 2015-07-25
  • 2021-07-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多