오라클 SQL오류 질의 0 3 2,284

by 정태웅 [SQL Query] [2017.04.26 10:25:22]


 

 

SELECT CONT_ID
                      ,AIR_PUMP_POW
                      ,BLOW_LPOW
                      ,BLOW_RPOW
                      ,LED_MODE
                      ,NODE_ID
                      ,NODE_LED_STA
                      ,NODE_LLU_VALUE
               FROM CONT_INFO_SEND 
          WHERE SEND_YN ='N'

이 쿼리를 실행하면 아래와 같이 결과 나오는데

ST01    1    1    1    1    G1    00    1
ST01    1    1    1    6    G2    00    1
ST01    1    1    1    1    G3    00    1
ST01    1    1    1    1    G4    00    1
ST02    1    1    1    1    G4    00    1

 

ST011111G10011116G20011111G30011111G4001
ST021111G4001

위와 같은 결과로 출력을 할려고

SELECT CONT_ID
      ,XMLAGG(XMLELEMENT(COL,AIR_PUMP_POW,BLOW_LPOW,BLOW_RPOW,LED_MODE,NODE_ID,NODE_LED_STA,NODE_LLU_VALUE) ORDER BY CONT_ID
                                                                               ,AIR_PUMP_POW
                                                                               ,BLOW_LPOW
                                                                               ,BLOW_RPOW
                                                                               ,LED_MODE
                                                                               ,NODE_ID
                                                                               ,NODE_LED_STA
                                                                               ,NODE_LLU_VALUE).EXTRACT('//TEXT()') COLUMN1   
  FROM CONT_INFO_SEND
 WHERE SEND_YN = 'N'                 
GROUP BY CONT_ID 

위와 같이 쿼리를 작성 했는데

 ORA-31013: Invalid XPATH expression 오류가 발생하네요. 고수님들 조언 좀 부탁드립니다.

 

by ㅇㅇ준 [2017.04.26 10:51:13]

SELECT listagg(CONT_ID||AIR_PUMP_POW||BLOW_LPOW||BLOW_RPOW||LED_MODE||NODE_ID||NODE_LED_STA||NODE_LLU_VALUE,'') within group (order by CONT_ID)

  FROM CONT_INFO_SEND

 WHERE SEND_YN = 'N'              
GROUP BY CONT_ID ;

11g이시라면..이렇게 해보세요


by ㅇㅇ준 [2017.04.26 10:58:40]

SELECT CONT_ID

, SUBSTR(XMLAGG (XMLELEMENT (A, '', CONT_ID||AIR_PUMP_POW||BLOW_LPOW||BLOW_RPOW||LED_MODE||NODE_ID||NODE_LED_STA||NODE_LLU_VALUE) ORDER BY CONT_ID).EXTRACT ('//text()'),1) COLUMN1     

FROM CONT_INFO_SEND A  WHERE SEND_YN = 'N'  

GROUP BY CONT_ID ;

아니시면 이렇게?


by 마농 [2017.04.26 11:19:53]

TEXT ==> text

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입