lock and get next n records from table in oracle
So, you have discovered that you can't do what you want; so you may want to do what you can by redesigning your process. One approach might be to introduce a new column, e.g. session_id, to indicate what application session, if any, is processing the row.
Each session will then start by atomically reserving a set of rows:
UPDATE phone_number SET session_id='&lt;whatever&gt;' 
WHERE status='O' AND session_id IS NULL AND ROWNUM&lt;=:sqli_n;
COMMIT;

It will then do whatever it needs to do and finally release the reserved rows:
UPDATE phone_number SET session_id=NULL 
WHERE session_id='&lt;whatever&gt;';
COMMIT;

You'll likely need to revise indexes on this table.