제가 아래와 같은 소스를 작성했는데요 이런 에러가 계속 생깁니다.
ORA-30004: when using SYS_CONNECT_BY_PATH function, cannot have seperator as part of column value
특별한 이상은 모르겠는데 자꾸 에러가....
처음 써보는 거라 경험이 없어서 쿼리가 혹시 잘못 되었나 해서 질문 드립니다.
혹시 원인을 아시는 분은 좀 알려주세요....
SELECT B.ADMSIDO,
C.ADMSGG,
A.APPL_YMD, A.EGMINDNM, A.EGMOWNNM, A.EGMCOMAD,
substr(max(sys_connect_by_path(A.CODE_CTN,' ')),2) as CODE_CTN,
A.SRV, A.MET,
substr(max(sys_connect_by_path(A.EQUIP,'/')),2) as EQUIP --잘모르겠음.
FROM(
------ 요기부터.
SELECT A.EGMDMNO, SUBSTR(A.EGMADMCD, 1, 2) AS SIDO, SUBSTR(A.EGMADMCD, 1, 5) AS SGG,
A.APPL_YMD, A.EGMINDNM, A.EGMOWNNM, A.EGMCOMAD,
C.CODE_CTN,
D.SRV, D.MET,
F.CODE_CTN || ', ' || TRUNC(E.SIZ,0) || G.CODE_CTN || ', ' || TRUNC(E.QT,0) AS EQUIP,
ROW_NUMBER () over (partition by A.EGMDMNO order by C.CODE_CTN) rnum
FROM EGM A
LEFT JOIN CGG_RURPW B ON A.EGMDMNO = B.DMNO
LEFT JOIN CODE C ON B.ABW_GBN = C.CODE AND C.CODE_ID = 'ENV325'
LEFT JOIN CGG_RUR D ON A.EGMDMNO = D.DMNO
LEFT JOIN CGG_TPBV E ON A.EGMDMNO = E.DMNO
LEFT JOIN CODE F ON E.ABW_CAY_EQI_GBN = F.CODE AND F.CODE_ID = 'ENV332'
LEFT JOIN CODE G ON E.UNT_CODE = G.CODE AND G.CODE_ID = 'CMM017'
WHERE A.APPL_YMD BETWEEN '2004.01.01' AND '2004.12.31' --#조건1
AND SUBSTR(A.EGMADMCD, 1, 2) = '11' --#조건2
AND A.EGMDEPGBN = '37' AND NVL(A.DCB_YMD,'9999.99.99') = '9999.99.99'
-------- 요기까지 따루하면 이상없음
) A
JOIN DMT_ADMCODE_SIDO B ON A.SIDO = B.SIDO_CODE
JOIN DMT_ADMCODE_SGG C ON A.SGG = C.SGG_CODE
START WITH rnum = 1
CONNECT BY PRIOR rnum = rnum - 1
GROUP BY B.ADMSIDO, C.ADMSGG, A.APPL_YMD, A.EGMINDNM, A.EGMOWNNM, A.EGMCOMAD, A.SRV, A.MET
--ORDER BY B.SIDO_CODE, C.SGG_CODE
토드에서 실행했는데 start with절 바로 위에 있는 DMT_ADMCODE_SGG C요 부분에 이상이 있다고 가리킵니다.
오라클은 10g를 쓰고 있습니다. mysql의 group_concat함수때문에 오라클로 변경을 한것인데....고수님들 조언 부탁드립니다.