La requête hiérarchique ne fonctionne qu'avec SELECT. Cela ne fonctionne pas avec UPDATE (je suis d'accord que ça pourrait être bien si c'était le cas).
Voici ce que vous pouvez faire :
update HTABLE
set status = 'INACTIVE'
WHERE STATUS <> 'CLOSE'
and id in ( select c.id
from htable
connect by prior ID = PARENT_ID
start with PARENT_ID = 12345);
Notez l'ordre des colonnes connect by prior ID = PARENT_ID
. Normalement, nous voulons parcourir l'arborescence à partir de la ligne START WITH, ce que j'ai fait. Votre commande connect by prior PARENT_ID = ID
remonte l'arbre de 12345 à ses parents, grands-parents, etc. Si c'est ce que vous voulez, changez le connect by
clause de retour.