私はPLSQLを初めて使用し、再帰関数を作成しようとしていましたが、PLSQLの用語とあまりにも混乱しています。
私は次のようなテーブル構造を持っています:
FFAM_ACC_ID FFAM_UPPER_ACC_ID FFAM_GROUP_FLAG
1 0 1
2 1 1
3 1 2
4 2 1
5 4 2
6 1 2
7 6 2
8 0 1
9 8 2
ここで、再帰関数を作成したいと思います。したがって、を指定するとFFAM_ACC_ID
、2を持つ子IDを返すことができるはずFFAM_GROUP_FLAG
です。
FFAM_UPPER_ACC_ID
は親IDでありFFAM_GROUP_FLAG
、行がグループであるかどうかを判別します。
したがって、2を指定すると、子行が4であるにもかかわらず、何も返されないはずです。その行にはFFAM_GROUP_FLAG
1があります。グループです。
1を指定すると、3、6、7が返されます。3の親IDが1で、7の親IDが6であるため、これは再帰が必要です。
9を指定すると、9が返されます。子行はありませんが、グループではありません。