Given all the other requirements for cursors are met, is it possible to change the fetchsize on the fly? e.g. conn.createStatement(...); st.setFetchsize(1); rs=st.executeQuery(...);//we got the first record st.setFetchsize(10); rs.next(); //now we got records nr. 2-11 in memory and sit at nr. 2 BTW - how is FETCH BACKWARD, what needs to be done to get it working?