Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java RowNum行为_Java_Sql_Oracle - Fatal编程技术网

Java RowNum行为

Java RowNum行为,java,sql,oracle,Java,Sql,Oracle,我在一个表中有6442670条记录,我正在使用 jdbctemplate使用行号一次1000000。 以下是查询 select * from (select rowNum rn , e.* from table_name e) table_name where rn >= ? and rn <= ? 我正在进行八次迭代 0至1000000 1000001至2000001 2000002至3000002 3000003至4000003 4

我在一个表中有6442670条记录,我正在使用 jdbctemplate使用行号一次1000000。 以下是查询

select * 
from (select rowNum rn
             , e.* 
      from table_name e) table_name  
where rn >= ? and rn <= ?
我正在进行八次迭代

0至1000000 1000001至2000001 2000002至3000002 3000003至4000003 4000004至5000004 5000005至6000005 6000006至700006 6442669至7442669 经过八次迭代后,我在列表中只看到6442668条记录,其中大部分是重复的。 使用rowNum获取记录可以多次获取同一记录吗?

尝试在唯一列上使用row\u number而不是rowNum


您没有order by,因此每次迭代中返回的行是任意的。它只在少数数据库上工作,在其他数据库上不工作。我想知道为什么它在不同的数据库中有不同的行为可能是因为在您运行查询时有人删除了一些行?可能是按子选择表中的所有列排序。那么rownum将始终保持不变。相同的行具有不同的行号,但这并不重要,因为它们是相同的。
SELECT *
  FROM (SELECT row_number() OVER ( ORDER BY unique_column_s ) rn,  e.*
          FROM table_name e ) table_name
 WHERE rn >= ? and rn <= ?