【发布时间】:2013-07-29 02:10:13
【问题描述】:
需要从一个表中检索 200000 条记录,并对每条记录进行处理。数据库是oracle。目前使用 fetch_rowarrayref 方法并对每条记录进行处理。对于大量记录,设置 5000 条记录和循环的获取限制是否有效。 Mysql 有一个 LIMIT 关键字,但 oracle 没有它。不知道如何在 dbi 中做到这一点。
将 5000 条记录提取到一个数组中 从数组中进行处理 再次抓取,直到达到 100000 条记录
【问题讨论】:
-
不过,Oracle SQL 确实有
ROWNUM。 -
确实,Oracle 有 ROWNUM 和 ROWID 用于从特定范围内的数据库中获取特定行。
-
Oracle 的常用方法是使用带有 LIMIT 子句的 BULK COLLECT。有关示例,请参阅stackoverflow.com/questions/3865295/oracle-bulk-collect-issue。不过,我不确定这在 Perl 中是否可行。
-
非常感谢您的链接。将尝试我是否可以从 perl 访问它