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 |