예가 정확하게 말씀드리면
description="1234" test="4444,589,4567," description="123" test="3333,123,456,111"
이런식으로 값이 들어가잇고 디스크립션 뒤에 별칭은 다른이름으로 추가로 들어갈수 잇고 test="값,값,값," 형태가 1개일수도잇고 여러개일수도있습니다.
test="값,값,값,", = test="4444,589,4567,"
test="값,값,값,값", = test="3333,123,456,111"
제가 row 형태로 하고싶은게
test="뒤에 값,값,값,
4444
589
4567
3333
123
456
111
입니다.
이런형태이고 중복되서 표현되도 상관은업습니다.
WITH t AS ( SELECT 1 pk, TO_CLOB('description="1234" test="4444,589,4567," description="123" test="3333,123,456,111"') v FROM dual UNION ALL SELECT 2, TO_CLOB('test="1,2,3"') FROM dual ) SELECT pk , lv , rn , REGEXP_SUBSTR(x, '[^",]+', 1, rn) x FROM (SELECT pk , lv , SUBSTR(REGEXP_SUBSTR(v, 'test="[^"]+', 1, lv), 7) x FROM t , (SELECT LEVEL lv FROM dual CONNECT BY LEVEL <= 9) WHERE lv <= REGEXP_COUNT(v, 'test="') ) , (SELECT ROWNUM rn FROM dual CONNECT BY LEVEL <= 9) WHERE rn <= REGEXP_COUNT(x, '[^",]+') ORDER BY pk, lv, rn ;