The problem is there are more than 10,000 records
Did I mess where you said whether or not oracle supports the LIMIT clause?
If so, that's all you need. Otherwise, if your data is uniquely ordered by some column, you can use that column to filter the starting point of each successive query, by remembering the last (or highest, if you're not ORDERing the query by the same unique column) value used and using it in a WHERE ID > x statement.
For example, if I didn't have LIMIT available in PostgreSQL, here's how I might code that ($start is passed as a GET variable, and thus is automatically 0 if it's not present--thus the starting page doesn't even need ?start=0 on the URL)
$qry = 'select name, date, id from table where id > $start order by date';
Then perform the query. Initialize a variable $high_id to 0, and as you're retreiving results, update $high_id to the highest ID received. When you've displayed 100 results, break out of the loop, and create a link to the next page:
echo "<a href=\"$PHP_SELF?start=$high_id\">More data</a>";