Programmers often retrieve big result set using queries and need to split them up in order to display the result correctly. Just replace the inner query with the original one see tag <PUT YOUR MAIN QUERY>, and UPPERBUOND, :LOWERBOUND with the boundary of the results you want to display.
SELECT * FROM (SELECT a.*, rownum rnum FROM ( <PUT YOUR MAIN QUERY> ) a WHERE rownum <= :UPPERBUOND ) where rnum >= :LOWERBOUND







isn’t it Tom Kyte way?