회사에서 운영서버에 반영하려는데, 아무생각없이 써놨던 LISTAGG 절들이 하나도 안 통했다.
알아보니 운영서버의 오라클 버전은 10g 였고 내가 작업하던 개발서버의 오라클 버전은 11g 였는데,
10g 에서는 LISTAGG 가 먹지 않는다고 한다.
대체제로 10g 에서는 WM_CONCAT 을 이용한다.
DT 컬럼을 WM_CONCAT 으로 뽑아내보자
SELECT WM_CONCAT (DT) FROM TEST_TABLE
만약 DT 컬럼이 CLOB 타입일 정도로 용량이 크다면, DBMS_LOB.SUBSTR( 컬럼명 , 1000 ) 을 이용하자.
1000은 1000자를 뜻하고 더 늘려도 된다.
SELECT DBMS_LOB.SUBSTR (WM_CONCAT (DT), 1000) FROM TEST_TABLE
참고로 LOB은 'Large Object' 의 약자로 오라클에서 제공하는 대용량 데이터 타입이다.
LOB 타입에는 BLOB, CLOB, NCLOB, BFILE 타입이 있다.
DBMS_LOB 패키지는 이러한 LOB 타입을 처리하는 패키지이다.
'Database' 카테고리의 다른 글
컴퓨터 사이의 통신 원리 (같은 네트워크간 / 다른 네트워크간) (1) | 2020.12.26 |
---|---|
IP Address 와 MAC Address란 (0) | 2020.12.26 |
[Oracle] 프로시저 / ORA-06553 - 호출 시 인수의 갯수나 유형이 잘못되었습니다 해결법 (1) | 2020.09.05 |
[Oracle] SEQ를 이용해서 MAX값 따오는 경우 발생할 수 있는 실수 (0) | 2020.09.05 |
NUMBER 타입 정의하는 방법 (3가지) (0) | 2020.07.16 |