我有一个大型Oracle数据库,需要处理大量记录。我正在验证PHP中的数据,然后从经过验证的数据数组生成XML代码。由于大量结果,XML文件变得太大而无法处理。我试图分解函数运行3次单独的时间,并生成3个单独的XML文件。我试图运行相同的查询3次,但最后每个都有一个不同的WHILE语句。我尝试使用rownum方法,但没有意识到你不能做rownum > x and rownum <y
格式。有人有主意吗?以下是我尝试运行的代码片段:
SELECT *
FROM useradmin.VSED_UNVALIDATED_VW tbl_vsed_unvalidated
WHERE (rownum < 10001)
然后使用另一个查询:
SELECT *
FROM useradmin.VSED_UNVALIDATED_VW tbl_vsed_unvalidated
WHERE ((rownum > 10000)
AND rownum < 20001)
答案 0 :(得分:1)
select * from
( select col1, col2, row_number() over (order by col1) r from tbl_vsed_unvalidated)
where r between 10000 and 20001
答案 1 :(得分:0)
尝试这样的事情:
SELECT * FROM
(SELECT *, rownum r FROM useradmin.VSED_UNVALIDATED_VW tbl_vsed_unvalidated)
WHERE r > 10001 AND r < 20001
您可以构建一个小功能来重用:
function select_limit($table, $min, $max) {
$sql = "SELECT * FROM
(SELECT *, rownum r FROM $table)
WHERE r > $min AND r < $max";
//return query result
}
答案 2 :(得分:0)
您正在寻找分页。它可以在oracle中完成。
要了解它,您应该阅读 rownum 伪列(如果您不想阅读比实际需要更多的数据)。
select *
from (select *
from (select ua.*, rownum r
from useradmin ua)
where rownum < MAX_VALUE)
where r > MIN_VALUE