Trying to port an existing mySQL DB on to an Oracle platform.

I would like to replace the mysql function 'mysql_data_seek' which moves the internal row pointer.

Basically, is there any way of moving the cursor within a result set after an Oracle query?

e.g. I can execute a query : 'SELCT * FROM TABLE WHERE ID > 40', which could return 100 results.
But, instead of displaying results starting from row 1 to 100, we want to start displaying from row 30 onwards (i.e. drop the 1st 30 rows)

Although I can achieve this using a sub select (nested query) this workaround is not ideal as it will mean changing the code manually each time this occurs.
Instead we're looking for a generic solution - thus the internal cursor would be perfect.

Any ideas out there?