SQL> select * from test; ID PARENT ---------- ---------- 1 0 2 1 3 1 4 3SQL> DELETE FROM test tt WHERE exists(select 1 from test t WHERE t.ID = tt.ID START WITH t.ID = 3 CONNECT BY PRIOR t.ID = t.PARENT);2 rows deletedSQL> select * from test; ID PARENT ---------- ---------- 1 0 2 1SQL> rollback;Rollback completeSQL> select * from test; ID PARENT ---------- ---------- 1 0 2 1 3 1 4 3SQL> DELETE FROM test tt WHERE exists(select 1 from test t WHERE t.ID = tt.ID START WITH t.ID = 4 CONNECT BY PRIOR t.ID = t.PARENT);1 row deletedSQL> select * from test; ID PARENT ---------- ---------- 1 0 2 1 3 1SQL> rollback;Rollback completeSQL> select * from test; ID PARENT ---------- ---------- 1 0 2 1 3 1 4 3SQL> DELETE FROM test tt WHERE exists(select 1 from test t WHERE t.ID = tt.ID START WITH t.ID = 1 CONNECT BY PRIOR t.ID = t.PARENT);4 rows deletedSQL> select * from test; ID PARENT ---------- ----------SQL>
---------- ----------
1 0
2 1
3 1
4 3SQL> DELETE FROM test tt WHERE exists(select 1 from test t WHERE t.ID = tt.ID START WITH t.ID = 3 CONNECT BY PRIOR t.ID = t.PARENT);2 rows deletedSQL> select * from test; ID PARENT
---------- ----------
1 0
2 1SQL> rollback;Rollback completeSQL> select * from test; ID PARENT
---------- ----------
1 0
2 1
3 1
4 3SQL> DELETE FROM test tt WHERE exists(select 1 from test t WHERE t.ID = tt.ID START WITH t.ID = 4 CONNECT BY PRIOR t.ID = t.PARENT);1 row deletedSQL> select * from test; ID PARENT
---------- ----------
1 0
2 1
3 1SQL> rollback;Rollback completeSQL> select * from test; ID PARENT
---------- ----------
1 0
2 1
3 1
4 3SQL> DELETE FROM test tt WHERE exists(select 1 from test t WHERE t.ID = tt.ID START WITH t.ID = 1 CONNECT BY PRIOR t.ID = t.PARENT);4 rows deletedSQL> select * from test; ID PARENT
---------- ----------SQL>