按没有行标识符的块迭代 DB2 table

Iterating over DB2 table by blocks with no row identifier

我们必须在 Spring 框架中创建一个按块读取 DB2 table 的进程。 但是,table 没有我们可以用作游标的具有唯一标识符的列,因此在第二个块中我们没有必须从哪个点读取。 table 有那些列:

BOOK_ID  SOLD_AT  QUANTITY

第一个是图书模型的外键,第二个是图书售出日期,第三个是图书售出数量。

是否可以通过 db2 的 rowId 进行 SELECT 排序?不幸的是,这是遗留代码,因此我们无法为 db2 创建额外的列。

提前致谢。

试试这个:

select hex(rowid) rowid, t.name, t.creator
from (
select t.*, rid_bit(t) rowid 
from sysibm.systables t
) t 
order by rowid
fetch first 10 row only;

rid_bit(table-designator) 该行的值可能会随着物理行移动而改变(重组,例如,删除旧行,将新行插入到相同的物理位置等。 )