我正在开发Java Web服务,当从IBM中型机(AS400)上的DB2数据库中获取大数据集时,允许分页。
例如; 如果数据集中有10000条记录,我想一次以1000个块的形式获取它们。
我发现这篇文章解释说我可以使用LIMIT和OFFSET。但是我需要将DB2_COMPATIBILITY_VECTOR变量设置为MYS。
DB2_COMPATIBILITY_VECTOR
MYS
现在,我一直在谷歌搜索,看到您可以使用db2set来设置此变量。但是我无法找出在哪里键入此命令?
db2set
我正在Windows机器上进行开发,并且已经安装了iSeries,并且可以通过iSeries 5250模拟器访问IBM Mid Range Machine。
我知道这一定是一个真正的菜鸟问题,但是如何将DB2_COMPATIBILITY_VECTOR变量更改为MYS?
DB2 for Linux Unix Windows(LUW)和DB2 for iSeries是不同的产品。可能,DB2 for iSeries不支持DB2_COMPATIBILITY_VECTOR。我无法在“ iSeries信息中心”中找到它。
可以使用FETCH FIRST 10 ROWS ONLY子句代替LIMIT。
代替LIMIT和OFFSET,您应该能够将ROW_NUMBER olap函数与subselect一起使用。像这样的东西:
SELECT emp.EMPNO, emp.SALARY FROM ( SELECT EMPNO, SALARY, ROW_NUMBER() OVER(ORDER BY SALARY DESC) as row_number FROM EMPLOYEE ) emp WHERE emp.row_number > 10 AND emp.row_number <= 20