在plSQL中生成工作流

在plSQL中生成工作流,sql,oracle,hierarchical-data,recursive-query,Sql,Oracle,Hierarchical Data,Recursive Query,我试图在plSQL中生成一个带有递归函数的工作流,但我没有得到我想要的 我得到了这个表格测试: GROUPE STATUS STATUSNEW A A1 A2 A A1 A3 A A3 A1 A A2 A4 A A3 A5 A A5 A6 A A6 A2 A A2 A10

我试图在plSQL中生成一个带有递归函数的工作流,但我没有得到我想要的

我得到了这个表格测试:

GROUPE  STATUS  STATUSNEW
A          A1      A2
A          A1      A3
A          A3      A1
A          A2      A4
A          A3      A5
A          A5      A6
A          A6      A2
A          A2      A10
B          A2      A3
B          A2      A3
B          A2      A10

  CREATE TABLE "TABLETEST" 
   (    "GROUPE" VARCHAR2(20 BYTE), 
    "STATUS" VARCHAR2(20 BYTE), 
    "STATUSNEW" VARCHAR2(20 BYTE)
   ) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
  TABLESPACE "XXXXXXXX" ;

  INSERT INTO TABLETEST ( GROUPE , STATUS , STATUSNEW ) VALUES('A','A1','A2');
  INSERT INTO TABLETEST ( GROUPE , STATUS , STATUSNEW ) VALUES('A','A1','A3');
  INSERT INTO TABLETEST ( GROUPE , STATUS , STATUSNEW ) VALUES('A','A3','A1');
  INSERT INTO TABLETEST ( GROUPE , STATUS , STATUSNEW ) VALUES('A','A2','A4');
  INSERT INTO TABLETEST ( GROUPE , STATUS , STATUSNEW ) VALUES('A','A3','A5');
  INSERT INTO TABLETEST ( GROUPE , STATUS , STATUSNEW ) VALUES('A','A5','A6');
  INSERT INTO TABLETEST ( GROUPE , STATUS , STATUSNEW ) VALUES('A','A6','A2');
  INSERT INTO TABLETEST ( GROUPE , STATUS , STATUSNEW ) VALUES('A','A2','A10');
  INSERT INTO TABLETEST ( GROUPE , STATUS , STATUSNEW ) VALUES('B','A2','A3');
  INSERT INTO TABLETEST ( GROUPE , STATUS , STATUSNEW ) VALUES('B','A2','A3');
  INSERT INTO TABLETEST ( GROUPE , STATUS , STATUSNEW ) VALUES('B','A2','A10');
我试过这个:

SELECT CONNECT_BY_ROOT STATUS   , STATUSNEW,
CONNECT_BY_ROOT STATUS  || SYS_CONNECT_BY_PATH(STATUSNEW,'//') p
FROM ( SELECT * FROM TABLETEST WHERE GROUPE= 'A' )
WHERE 
CONNECT_BY_ROOT STATUS  != STATUSNEW
CONNECT BY NOCYCLE STATUS   = PRIOR STATUSNEW
ORDER SIBLINGS BY STATUS    ,  STATUSNEW, P;
但我没有得到我想要的:

我的目标是为1个组生成完整的工作流(首先是A,然后是b…)

事实上,我得到了这个:

A1  A2  A1//A2
A1  A10 A1//A2//A10
A1  A4  A1//A2//A4
A1  A3  A1//A3
A1  A2  A1//A3//A1//A2
A1  A10 A1//A3//A1//A2//A10
A1  A4  A1//A3//A1//A2//A4
A1  A5  A1//A3//A5
A1  A6  A1//A3//A5//A6
我希望我的工作流程像一棵树,适用于a组:

A1 <-----------|
--->A2 <-------|---|   
--->--->A4     |   |
--->--->A10    |   |
--->A3         |   |
--->--->--->--->   |
--->--->A5         |
--->--->--->A6     |
--->--->--->--->--->
...
a1a2--->A4||
--->--->A10||
--->A3||
--->--->--->--->   |
--->--->A5|
--->--->--->A6|
--->--->--->--->--->
...
(我希望我的工作流像状态机一样)

有线索吗

非常感谢