오라클에서, 조회된 Row 값을 컬럼값으로 조회하는 경우 아래 방법 사용.
(잊어버릴까봐 기록해놓는 거임... )
DB에서 토드 등을 이용해 데이터 조회후, 엑셀 자료로 만들어야 하는 경우에 사용했음.
피벗, wm_concat등 방법이 있으나 value가 4,000이 넘거나 DB의 buffer 사이즈 등으로 오류가 발생(사이즈가 작으면 괜찮은듯.)
GetStringVal()으로 하면 텍스트로 처리하나, 사이즈 제한이 있어, CLOB으로 처리.
select name,
SUBSTR(XMLAgg(XMLElement(val, '|'|| zipcode|| '|' || adress ||'|'||tel) ORDER BY zipcode).Extract('//text()').GETCLOBVAL(),2) val
from table_name
group by name
과 같이 하면 된다.
아래와 같이 테이블이 있을시,
이름 우편번호 주소 전화번호
---------------------------------------------------------------------
홍길동 01234 서울 구로구 디지털로 1길 222 02-123-1234
홍길동 01234 서울 구로구 디지털로 3길 111 02-333-1234
고길동 02222 경기 부천시 소사로길 303 031-123-1234
아래와 같이 출력 값을 구할 수 있다.
(토드에서 export data set을 하되, clob을 포함하도록 옵션 선택후 CSV로 저장한뒤, 엑셀에서 '|' 구분자로 나누기를 하면 각 컬럼으로 구분된다.)
이름 val ( <-이 필드는 HUGECLOB으로 처리된다)
-----------------------------------------------------------------------------------------------------------------------
홍길동 01234|서울 구로구 디지털로 1길 222|02-123-1234|01234|서울 구로구 디지털로 3길 111|02-333-1234
고길동 02222|경기 부천시 소사로길 303|031-123-1234
기록 끝.
'Infomation > Tip & Tech' 카테고리의 다른 글
크롬(Chrome) 실행이 느려질때 초기화 방법 (0) | 2016.04.20 |
---|---|
2015년도 SW 기술자 노임단가 (0) | 2016.03.29 |
기능점수(Function Point) 산정 실전 가이드 : SW개발사업 중심 (0) | 2014.02.27 |
Agile(애자일) 초심자를 위한 '애자일 SW 개발 101' (0) | 2014.02.27 |
웹캐스팅의 기초 – 비디오 스트리밍 (Video Streaming)에 대한 이해 (0) | 2012.12.06 |