CREATE TABLE TBL_TEST (ID NUMBER,NAME VARCHAR2(10),PID NUMBER,QTY NUMBER);
INSERT INTO TBL_TEST(ID,NAME,PID,QTY) VALUES('1','111','0',1);
INSERT INTO TBL_TEST(ID,NAME,PID,QTY) VALUES('2','222','1', 2);
INSERT INTO TBL_TEST(ID,NAME,PID,QTY) VALUES('4','444','1',4);
INSERT INTO TBL_TEST(ID,NAME,PID,QTY) VALUES('5','555','2',5);
INSERT INTO TBL_TEST(ID,NAME,PID,QTY) VALUES('9','999','2',7);
INSERT INTO TBL_TEST(ID,NAME,PID,QTY) VALUES('10','999-1','9',4);
INSERT INTO TBL_TEST(ID,NAME,PID,QTY) VALUES('11','999-2','9',5);
INSERT INTO TBL_TEST(ID,NAME,PID,QTY) VALUES('12','999-3','9',6);
SELECT ID,
NAME,
pid,
qty,
dbms_aw.eval_text(ltrim(sys_connect_by_path(qty, '*'), '*'))
DBMS_XMLGEN.getxmltype
FROM TBL_TEST
START WITH ID = 1
CONNECT BY PRIOR ID = pid
ORDER BY 1
SELECT xmlquery('1*2*3*4' returning content).getnumberval() FROM DUAL;