Tja, leider ist das so:

Positioned UPDATE statements identifying the cursor associated with a select-statement can update all
updateable columns, if:
* The select-statement does not contain one of the following:
– An UPDATE clause
– A FOR READ ONLY clause
– An ORDER BY clause
* The DECLARE CURSOR statement does not contain a SCROLL keyword without the DYNAMIC
keyword.

Da SQL ggf. bei Order-By die Daten in eine temporäre Ergebnistabelle kopiert, geht der Bezug zum Original verloren.

In solchen Fällen sollte ein Update-Where verwendet werden, was im Übrigen nicht langsamer ist, wenn für die Where-Klausel ein eindeutiger Index vorhanden ist.