I have an `ITEM` table with one of the column as `CREATED_DATE`. In a clustered enviroment, many copies of services will pick items from this table and process it. Each service should pick the oldest 10 items from the ITEM table.

I am able to select top 10 rows using this in a Stored Procedure:

```
select * from (
    select  item_id, row_number() over (order by CREATED_DATE) rownumber
    FROM item )
where rownumber < 11

```

Since many service should use this, I am using `select ... for update` to update the rows as "processing". But the below `FOR UPDATE` statement, fails for the above select statement with error "ORA-02014: cannot select FOR UPDATE from view with DISTINCT, GROUP BY, etc."

```
OPEN items_cursor FOR
**select Statement**
FOR UPDATE;

```

Please help me with a solution.