De hiërarchische query werkt alleen met SELECT. Het werkt niet met UPDATE (ik ben het ermee eens dat het netjes zou kunnen zijn als dat wel het geval was).
Dus wat je kunt doen is dit:
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);
Let op de volgorde van de kolommen connect by prior ID = PARENT_ID
. Normaal gesproken willen we vanaf de START WITH-rij naar beneden lopen, wat ik ook heb gedaan. Uw bestelling connect by prior PARENT_ID = ID
loopt de boom op van 12345 naar zijn ouders, grootouders, enz. Als je dat wilt, schakel je de connect by
clausule terug.