Oracle中是否可以替代ROWNUM?

时间:2018-11-02 21:35:58

标签: oracle jdbc jpa-2.1

我对Oracle数据库有JPA本机查询。我知道限制结果的唯一方法是在Oracle中使用'rownum',但是由于某种原因,我必须使用的jar驱动程序的查询解析器无法识别它。

Caused by: java.sql.SQLException: An exception occurred when executing the following query: "/* dynamic native SQL query */ SELECT * from SFDC_ACCOUNT A  where  SBSC_TYP  = ?   and  rownum <= ?".  Cause: Invalid column name 'rownum'.  On line 1, column 90.  [parser-2900650]
com.compositesw.cdms.services.parser.ParserException: Invalid column name 'rownum'.  On line 1, column 90.  [parser-2900650]

我该如何摆脱呢?

1 个答案:

答案 0 :(得分:0)

ANSI 标准类似于以下内容

SELECT *
FROM (
SELECT
T.*,
ROW_NUMBER() OVER (PARTITION BY T.COLUMN ORDER BY T.COLUMN) ROWNUM_REPLACE
FROM TABLE T
)
WHERE
1=1
AND ROWNUM_REPLACE < 100

或者您也可以使用以下内容:

SELECT * FROM TABLE T
ORDER BY T.COLUMN
OFFSET 0 ROWS
FETCH NEXT 100 ROWS ONLY;