Я считаю, что вам нужно удалить ORDER BY
в подзапросе.Порядок строк не имеет смысла для логического результата операции IN
.
Обычно, когда Oracle выдает эту ошибку, но у вас сбалансированные круглые скобки, это означает, что в секции в скобках есть неожиданный текст.
Изменить в ответ на комментарий
ROWNUM рассчитывается до применения ORDER BY.Чтобы сделать то, что вы хотите, вам нужен вложенный подзапрос, чтобы вначале происходило упорядочение.
update mytable set node_index=0 where id in (
SELECT
id
FROM
( SELECT id FROM mytable WHERE procs_dt IS NULL order by CRET_DT,PRTY desc)
WHERE
rownum<=10
)
В этом случае ORDER BY
разрешено, поскольку оно влияет на результат подзапроса.