select *和select count(*)数量不一致

UPC子夜 2011-12-05 12:52:32
有一个表test,我用select * from test 有11条记录,但是用select count(*) from test只有6条记录
analyze table test compute statistics执行过了
把所有的索引也删掉重建了 还是没有效果

网上说要检查表有没有损坏,但是check table test在sql窗口和命令行都不识别 repair也不行
哪位大侠帮帮忙啊 谢谢了
...全文
1548 27 打赏 收藏 转发到动态 举报
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
lgc8023 2011-12-08
  • 打赏
  • 举报
回复
这是第一次见识这种情况
「已注销」 2011-12-07
  • 打赏
  • 举报
回复
估计是没有commit 但是不在同一个客户端操作的结果
UPC子夜 2011-12-07
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 bearfishshow 的回复:]
估计也是楼上说的,你可能查询到的有部分数据没提交.
在同一个窗口中可以查询到不提交的数据,
再另外的窗口中只能查询提交后的数据.
[/Quote]
我这边没法重现问题 问题是现场客户反映的
所以难办啊 只能把表drop了再重建
oO寒枫Oo 2011-12-06
  • 打赏
  • 举报
回复
select num_rows from user_tables where table_name='test'
oO寒枫Oo 2011-12-06
  • 打赏
  • 举报
回复
analyze table test compute statistics;
UPC子夜 2011-12-06
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 hj_daxian 的回复:]

即使有损坏 查询出来的数量也应该是一样的呀 可以直接查看表吧?
[/Quote]
右键查询数据 是11条
UPC子夜 2011-12-06
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 major57 的回复:]

应该是有空值的吧 是不是count的某个字段? 你用count(1)试试...
[/Quote]
用的是count(*) 应该不会是空值的问题
关键是现场数据库操作有限制 不让随便新建表
singzero 2011-12-06
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 nvhaixx 的回复:]

引用 3 楼 benchim888 的回复:

你是不是俩窗口查的,其中一个窗口插入数据后没有commit;


同意
[/Quote]

这个的可能性比较大
major57 2011-12-06
  • 打赏
  • 举报
回复
应该是有空值的吧 是不是count的某个字段? 你用count(1)试试...
  • 打赏
  • 举报
回复
即使有损坏 查询出来的数量也应该是一样的呀 可以直接查看表吧?
宋哥 2011-12-06
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 benchim888 的回复:]
你是不是俩窗口查的,其中一个窗口插入数据后没有commit;
[/Quote]

这个可能性比加大
soarfish 2011-12-06
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 yinan9 的回复:]

LZ到底是怎么操作的?如果真commit了,问题就蹊跷了
[/Quote]

是啊,这种现象还真是没有遇见的。
yinan9 2011-12-06
  • 打赏
  • 举报
回复
LZ到底是怎么操作的?如果真commit了,问题就蹊跷了
东方2009 2011-12-06
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 bearfishshow 的回复:]
估计也是楼上说的,你可能查询到的有部分数据没提交.
在同一个窗口中可以查询到不提交的数据,
再另外的窗口中只能查询提交后的数据.
[/Quote]
同意
灰哥 2011-12-06
  • 打赏
  • 举报
回复
估计也是楼上说的,你可能查询到的有部分数据没提交.
在同一个窗口中可以查询到不提交的数据,
再另外的窗口中只能查询提交后的数据.
tianhxk 2011-12-05
  • 打赏
  • 举报
回复
用create table as select * from test 重新建立一张表,再查看有多少条记录? 记录有重复,有空值么?
从来没碰到过这种问题...
huangdh12 2011-12-05
  • 打赏
  • 举报
回复
这种情况没有碰过。。如果块有损坏,你在查询中是会抛出错误的。
fanjie_sinnye 2011-12-05
  • 打赏
  • 举报
回复
最有可能的,是有 空值。
coolkisses 2011-12-05
  • 打赏
  • 举报
回复
先确认问题是否是问题,不是操作或查询错误造成的。
我心飞翔 2011-12-05
  • 打赏
  • 举报
回复
把数据贴出来看一下.
查询后,做个截图看看,太不可思议了。
加载更多回复(6)

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧