我正在使用JPA Criteria API,我有一个必须使用UNION子句的要求,由于JPA不支持set操作,所以我必须创建一个本地sql查询。
在这个查询中,我必须使用JPA Criteria API限制返回的行数,如下所示:

typedQuery.setFirstResult(gridParams.getStartRow());
typedQuery.setMaxResults(gridParams.getEndRow() - Math.max(0, gridParams.getStartRow()));

我们的应用程序同时在Oracle 12c和Postgres中运行,所以我面临的问题是Oracle和Postgres使用不同的语法来限制结果。
我该怎么解决?

最佳答案

两个数据库系统都支持ANSI标准:

select *
from some_table
order by something
OFFSET 10 ROWS
FETCH FIRST 10 ROWS ONLY;

甲骨文从12.1开始支持它
fetch first in the Postgres manual
fetch first in the Oracle manual

关于sql - 限制oracle和postgres中查询返回的行数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49628610/

10-16 23:00