在plSQL中生成工作流
我试图在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
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|
--->--->--->--->--->
...
(我希望我的工作流像状态机一样)
有线索吗
非常感谢