我用copy功能导入到表一些数据(假设有100条),该表以前还有其他数据(假设有200条).导入成功后检查表的数据总和select count(rownum) from table,却发现总和不正确,少于前后相加之和(300条).但是,我用一个时间字段当where条件检查前后的数据,加起来的总和确实正确的.加上where 条件查出的数据却多于不加条件的。另外,我用create table as 创建另一个table根据这张表,结果再select count(rownum)从新表,数据却是正确的300条?请各位达人指教,这是为什么?

解决方案 »

  1.   

    用copy最好在最后一行粘贴,或者copy到一张空临时表,再从临时表Insert正式表。
      

  2.   

    To kinglht:
    我现在也怀疑是这张表的rownum损坏了,数据并没有丢失.但是是不是因为copy造成的表损坏我还不能确定,因为以前一直copy导数据,从来没出现过这种状况。
      

  3.   

    你需要了解rownum伪列select count(1) from tb;
    你看到的结果就应该是正确的了
      

  4.   

    To houyichong:
    我执行select count(1) from tb,但是结果一样是少于300条的.再加上where 条件执行却是300条.另外我再create table tb1 as select * from tb. 然后再select count(1) from tb1.结果也是300条.现在我用另外一张表了,数据没丢失。但是这个原因我还是没搞清楚。。