表,我从以下两个查询不同数量的表:不同数量相同的模式下,从USER_TABLES和USER_OBJECTS查询
select object_type,count(*) from user_objects group by object_type;
输出:我从OBJECT_TYPE列的表拿到17。
另一个查询:
select count(*) from user_tables;
输出:选择
13行。
有人能告诉我为什么我有两个不同的数字吗?
表,我从以下两个查询不同数量的表:不同数量相同的模式下,从USER_TABLES和USER_OBJECTS查询
select object_type,count(*) from user_objects group by object_type;
输出:我从OBJECT_TYPE列的表拿到17。
另一个查询:
select count(*) from user_tables;
输出:选择
13行。
有人能告诉我为什么我有两个不同的数字吗?
第一个查询的结果包括BIN中的对象。 尝试
select object_type,count(*) from user_objects where object_name not like 'BIN%' group by object_type;
你应该得到相同的结果
这将是一个假设,直到OP显示table_names。如果OP使用PURGE删除这些表格,则不应出现。 – 2014-09-12 13:55:23
但是,为什么你建议我的答案不能解决问题?我已经在几个模式上检查了它,并且我得到了BIN中表的结果之间的唯一区别。我想这个问题的查询是在典型的用户上运行的,而不是SYS而不是SYSTEM等。 – 2014-09-12 14:17:18
我不是说你的回答是不正确的,但是问题本身缺乏信息。正如我所说,如果在DROP期间清除了它们,那么recycle_bin对象将不会显示在user_objects中。所以,在这个阶段,你的帖子更多的是评论而不是回答。如果你回答了一个不完整的问题,你最终将得到一个不完整的答案;-) – 2014-09-12 14:21:57
我们必须看到您的数据提供进一步的帮助。 – Linger 2014-09-12 13:25:51
我在4种不同模式下运行了您的查询,并且每次都获得一致的结果。计数大约为1000s,仍然精确到点。你的情况似乎是特例,所以请提供其他数据。 – CodeNewbie 2014-09-12 13:39:31
不要说,SHOW和PROVE.We没有你的桌子,所以明白。 SQL * Plus,复制和粘贴是你的朋友。 – 2014-09-12 13:42:21