Oracle XE 11g에서는 WM_CONCAT() 사용을 못하고,

대신에 LISTAGG 사용하면 된다.

 

LISTAGG는 구분자를 원하는 문자로 지정 할 수 있다.

 

 문제

-- SQL Worksheet

WITH TBL_LV AS (
  SELECT 

    LEVEL AS LV
  FROM DUAL
  CONNECT BY LEVEL <= 10
)
SELECT

  WM_CONCAT(LV, ',') AS COL1

FROM TBL_LV;

 

-- Query Reqult

ORA-00904: "WM_CONCAT": invalid identifier
00904. 00000 -  "%s: invalid identifier"
*Cause:    
*Action:

 

 

 해결

-- SQL Worksheet
WITH TBL_LV AS (
  SELECT 

    LEVEL AS LV
  FROM DUAL
  CONNECT BY LEVEL <= 10
)
SELECT

   LISTAGG(LV, ',') WITHIN GROUP (ORDER BY LV) AS COL1

FROM TBL_LV;

 

-- Query Reqult

COL1

1,2,3,4,5,6,7,8,9,10

 

 

 참고

오라클 문서

https://docs.oracle.com/cd/E11882_01/server.112/e41084/functions089.htm#SQLRF30030

 

 

 

728x90

'Software > Oracle' 카테고리의 다른 글

[Oracle] HR 계정 해제(Unlock)  (0) 2019.12.21
[Oracle] PL/SQL 로그 사용하기 DBMS_OUTPUT.PUT_LINE()  (0) 2019.12.12
[Oracle] 유용한 함수  (0) 2014.04.15
[Oracle] 기본  (0) 2014.04.10
[Oracle] Oracle Database 11g Documentation  (0) 2014.03.31

+ Recent posts