package com.revolsys.oracle.recordstore; import java.util.Map; import com.revolsys.jdbc.io.AbstractJdbcRecordStore; import com.revolsys.jdbc.io.JdbcQueryIterator; import com.revolsys.record.query.Query; public class OracleJdbcQueryIterator extends JdbcQueryIterator { public OracleJdbcQueryIterator(final AbstractJdbcRecordStore recordStore, final Query query, final Map<String, Object> properties) { super(recordStore, query, properties); } @Override protected String getSql(final Query query) { String sql = super.getSql(query); final int offset = query.getOffset(); final int limit = query.getLimit(); if (offset > 0 || limit >= 0 && limit < Integer.MAX_VALUE) { final int startRowNum = offset + 1; final int endRowNum = offset + limit; sql = "SELECT * FROM (" // + "SELECT V.*,ROWNUM \"RNUM\" FROM ("// + sql + // ") V "// + "WHERE ROWNUM <= " + endRowNum + ")"// + "WHERE RNUM >= " + startRowNum; } return sql; } }