Я использую Oracle 11g
и имею сложный запрос на соединение. В этом запросе я действительно хотел применить OFFSET
и LIMIT
, чтобы эффективно использовать Spring Batch Framework
.
Я прошел через: Как ограничить количество строк, возвращаемых запросом Oracle после заказа? и
Альтернативы LIMIT и OFFSET для разбиения по страницам в Oracle
Но мне все не очень понятно.
Мой запрос
SELECT DEPT.ID rowobjid, DEPT.CREATOR createdby, DEPT.CREATE_DATE createddate, DEPT.UPDATED_BY updatedby, DEPT.LAST_UPDATE_DATE updateddate,
DEPT.NAME name, DEPT.STATUS status, statusT.DESCR statusdesc,
REL.ROWID_DEPT1 rowidDEPT1, REL.ROWID_DEPT2 rowidDEPT2, DEPT2.DEPT_FROM_VAL parentcid, DEPT2.NAME parentname
FROM TEST.DEPT_TABLE DEPT
LEFT JOIN TEST.STATUS_TABLE statusT ON DEPT.STATUS = statusT.STATUS
LEFT JOIN TEST.C_REL_DEPT rel ON DEPT.ID=REL.ROWID_DEPT2
LEFT JOIN TEST.DEPT_TABLE DEPT2 ON REL.ROWID_DEPT1=DEPT2.ID
ORDER BY rowobjid asc;
Вышеупомянутый запрос дает мне 10 миллионов записей.
Примечание. Ни в одной из таблиц базы данных нет PK, поэтому мне нужно использовать OFFSET и LIMIT.