我有一个很大的Oracle表,我想将其下载到一个csv文件中,但是太大了,无法一次性将该表加载到内存中。我想重复查询以加载前100,000条记录,然后加载下100,000条,依此类推。我的问题是确保每个查询都返回与以前不同的记录。
我使用下面所示形式的内部查询,其中A是主键,因此应保证顺序。
SELECT A, B, C, rownum rn FROM my_table ORDER BY A asc
我计划有一个外部查询,该查询使用WHERE子句为rn值范围选择此表的块。
问题在于,每次运行内部查询时,rn的顺序都与以前不同。
提取表中唯一块的最佳方法是什么?
答案 0 :(得分:0)
您可以分页结果。
SELECT *
FROM my_table
ORDER BY A asc
OFFSET 10 ROWS FETCH NEXT 10 ROWS ONLY;