2. 訪問経路の列挙
次は、枝切りを使った問題を解いてみましょう。
| ID | Next1 | Next2 | Next3 |
| A | B | C | null |
| B | D | G | null |
| C | D | E | null |
| D | E | F | G |
| E | C | D | F |
| F | D | E | G |
| G | B | D | F |
下記の有向グラフでAからDに到着する経路を求めます。ただし、同じノードへの再訪は不許可とします。

答えは下記となります。Dに到着したら探索を打ち切るということで、connect by句でprior ID != 'D'を指定しています。そして、where ID = 'D'を指定して、Dまでの経路を列挙しています。
select Level,sys_connect_by_path(ID,',') as path
from NodeT
where ID = 'D'
start with ID = 'A'
connect by nocycle ID in(prior Next1,
prior Next2,
prior Next3)
and prior ID != 'D';
| Level | path |
| 3 | ,A,B,D |
| 4 | ,A,B,G,D |
| 5 | ,A,B,G,F,D |
| 7 | ,A,B,G,F,E,C,D |
| 6 | ,A,B,G,F,E,D |
| 3 | ,A,C,D |
| 4 | ,A,C,E,D |
| 5 | ,A,C,E,F,D |
| 7 | ,A,C,E,F,G,B,D |
| 6 | ,A,C,E,F,G,D |
