階層クエリはSELECTでのみ機能します。 UPDATEでは機能しません(機能する場合は適切である可能性があることに同意します)。
だからあなたができることはこれです:
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);
列の順序に注意してくださいconnect by prior ID = PARENT_ID
。通常、私たちはSTART WITH行からツリーを歩きたいのですが、これは私がやったことです。ご注文のconnect by prior PARENT_ID = ID
ツリーを12345からその親、祖父母などに移動します。それが必要な場合は、connect by
を切り替えます。 条項を取り戻します。