首页 > 解决方案 > 将大型 Oracle 表下载到 csv 文件

问题描述

我有一个大的 Oracle 表,我想将它下载到 csv 文件中,但是它太大了,无法一次性将表加载到内存中。我想重复查询以加载前 100,000 条记录,然后是下 100,000 条,依此类推。我的问题是确保每个查询都返回与以前不同的记录。

我使用如下所示形式的内部查询,其中 A 是主键,因此应该保证顺序。

SELECT  A,  B, C, rownum rn FROM my_table   ORDER BY A  asc

我计划有一个外部查询,使用 WHERE 子句为一系列 rn 值选择该表的块。

问题是每次我运行内部查询时, rn 的顺序都与以前不同。

提取表的唯一块的最佳方法是什么?

标签: oracle

解决方案


您可以只对结果进行分页。

SELECT *
FROM my_table
ORDER BY A asc
OFFSET 10 ROWS FETCH NEXT 10 ROWS ONLY;

推荐阅读