2014-09-12 59 views
2

表,我从以下两个查询不同数量的表:不同数量相同的模式下,从USER_TABLES和USER_OBJECTS查询

select object_type,count(*) from user_objects group by object_type; 

输出:我从OBJECT_TYPE列的表拿到17。

另一个查询:

select count(*) from user_tables; 

输出:选择

13行。

有人能告诉我为什么我有两个不同的数字吗?

+2

我们必须看到您的数据提供进一步的帮助。 – Linger 2014-09-12 13:25:51

+0

我在4种不同模式下运行了您的查询,并且每次都获得一致的结果。计数大约为1000s,仍然精确到点。你的情况似乎是特例,所以请提供其他数据。 – CodeNewbie 2014-09-12 13:39:31

+0

不要说,SHOW和PROVE.We没有你的桌子,所以明白。 SQL * Plus,复制和粘贴是你的朋友。 – 2014-09-12 13:42:21

回答

-1

第一个查询的结果包括BIN中的对象。 尝试

select object_type,count(*) from user_objects where object_name not like 'BIN%' group by object_type; 

你应该得到相同的结果

+0

这将是一个假设,直到OP显示table_names。如果OP使用PURGE删除这些表格,则不应出现。 – 2014-09-12 13:55:23

+0

但是,为什么你建议我的答案不能解决问题?我已经在几个模式上检查了它,并且我得到了BIN中表的结果之间的唯一区别。我想这个问题的查询是在典型的用户上运行的,而不是SYS而不是SYSTEM等。 – 2014-09-12 14:17:18

+0

我不是说你的回答是不正确的,但是问题本身缺乏信息。正如我所说,如果在DROP期间清除了它们,那么recycle_bin对象将不会显示在user_objects中。所以,在这个阶段,你的帖子更多的是评论而不是回答。如果你回答了一个不完整的问题,你最终将得到一个不完整的答案;-) – 2014-09-12 14:21:57

相关问题