Ich habe eine ITEM
Tabelle mit einer der Spalten als CREATED_DATE
. In einer geclusterten Umgebung werden viele Kopien von Diensten Elemente aus dieser Tabelle auswählen und verarbeiten. Jeder Dienst sollte die ältesten 10 Einträge aus der Tabelle ITEM auswählen.
Ich bin in der Lage, die ersten 10 Zeilen in einer Stored Procedure auszuwählen:
select * from (
select item_id, row_number() over (order by CREATED_DATE) rownumber
FROM item )
where rownumber < 11
Da viele Dienste dies nutzen sollten, verwende ich select ... for update
um die Zeilen als "Verarbeitung" zu aktualisieren. Aber die unten FOR UPDATE
Anweisung, schlägt für die obige Select-Anweisung mit dem Fehler "ORA-02014: cannot select FOR UPDATE from view with DISTINCT, GROUP BY, etc." fehl.
OPEN items_cursor FOR
**select Statement**
FOR UPDATE;
Bitte helfen Sie mir mit einer Lösung.