WM_CONCAT은 오라클 내부적으로 사용되던 함수로, 사용법이 매우 간단해서 예전에는 많이 쓰였습니다.
-
사용법:
SELECT WM_CONCAT(이름) FROM 사원테이블; -
장점: 구문이 짧고 간단합니다.
-
⚠️ 주의사항 (가장 중요!): * 공식 지원 함수가 아닙니다. (언제 사라져도 이상하지 않은 함수였죠.)
-
Oracle 12c 버전부터는 완전히 제거되었습니다. * 즉, 12c 이상의 환경에서 이 함수를 쓰면 에러가 발생하며 시스템이 멈출 수 있습니다.
-
정렬이 불가능하여 데이터 순서가 제멋대로 섞입니다.
-
2. LISTAGG (현재의 표준, 강력 권장!)
오라클 11g R2 버전부터 등장한 공식 표준 함수입니다. 현재는 이 방식을 사용하는 것이 정석입니다.
예시)
SELECT LISTAGG(컬럼명, '구분자') WITHIN GROUP (ORDER BY 정렬기준)
FROM 테이블명;
장점:
-
오라클이 공식 지원하므로 안정적입니다.
-
WITHIN GROUP (ORDER BY ...)구문을 통해 데이터가 합쳐지는 순서를 지정할 수 있습니다. -
구분자(콤마, 슬래시 등)를 내 마음대로 지정할 수 있습니다.
| 구분 | WM_CONCAT | LISTAGG |
| 권장 여부 | 사용 금지 (비권장) | 적극 권장 (표준) |
| 정렬 기능 | 지원 안 함 | 순서 지정 가능 |
| 사용 가능 버전 | 12c 버전부터 삭제됨 | 11g R2 ~ 최신 버전(23ai)까지 |

