블로그 이미지
숏퐁숑

카테고리

분류 전체보기 (70)
게임기획자 준비 (18)
게임기획 참고자료 (7)
프로그램 (33)
숨쉬기 활동 (10)
Total
Today
Yesterday

달력

« » 2025.5
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

공지사항

태그목록

최근에 올라온 글

CONCAT 함수는 입력되는 두 문자열을 연결하여 반환한다.

문자열의 데이터타입은 CHAR, VARCHAR2, NCHAR, NVARCHAR2, CLOB, NCLOB이며, 두 문자열 데이터 타입이 같으면, 그와 같은 데이터타입을 반환한다. 하지만 입력되는 두 문자열의 데이터타입이 다를 경우 NCLOB 데이터타입으로 반환된다.

 

【형식】

CONCAT( char1, char2 )

 

 

【예제】

SQL> select concat('My name is','홍길동') from dual;

-----------------------------------------------------------------

My name is 홍길동

 

 

단순히 문자열을 연결하여 반환하는 함수로? CONCAT는 오라클에서 자주 사용하는 익숙한 함수이다.

오늘 정리하고 싶은 WM_CONCAT 함수는 데이터가 그룹화 되어져 있을 때 여러행(Row)의 값을 하나의 컬럼으로 합쳐서

조회 할 수 있는 막강한 기능이라 정리해 보고자 한다.

 

예제) 아래 예제는 각 부서의 사람들의 이름을 한 ROW에 합쳐서 보여주고 싶을 때 ...

 

table name: dept_tb
dept_name || emp_name
=========================
인사과         영수
인사과         철수
인사과         민수
인사과         길동
=========================
 

SELECT wm_concat(emp_name)
FROM dept_tb
GROUP BY dept_name;
※ 단, 여기서 select 결과가 다음과 같이 'oracle.sql.CLOB@e62121' ? clob의 주소값을 반환하고 있는 경우가 있는데... 
이때, TO_CHAR로 감싸서 반환해주면 해결된다! 혹시 그래도 해결이 안된다면... 전자정부프레엠워크 사용시 
Oracle의 경우는 iBatis를 위한 sqlMapClient bean 설정 시 다음과 같이 lobHandler를 등록해 주어야 한다. 
(ex: context-sqlMap.xml)  보통은 공통 잡는 분들이 프레임워크 잡을떄 당연 추가하겠지만 혹시나..!!! 

<bean id="lobHandler" class="org.springframework.jdbc.support.lob.DefaultLobHandler" lazy-init="true" />

SELECT to_char(wm_concat(emp_name))
FROM dept_tb
GROUP BY dept_name;

 

[결과]

 

===============================
dept_name || emp_name
===============================
인사과         영수,철수,민수,길동
===============================

콤마 제거하고 조회 하고 싶을땐 (replace나 translate 함수) : 문자열을 치환해 주는 기능을 하는 표현식
※ 단순 문자열 치환 : TRANSLATE('대상문자열', '비교문자', '바꿀문자')?
SELECT translate(wm_concat(emp_name),'a,','a ')
FROM dept_tb
GROUP BY dept_name;
[결과]?

==============================
dept_name || emp_name
==============================
인사과     영수철수민수길동
=============================

WM_CONCAT 함수에 대해 정리해 보았다. 알면 정말 유용한 오라클 함수들!! 모르면 정말 어떻게 해야할지 
많은 고민들로 시간을 보내는 경우가 허다한데... 한 번 잘 정리해 놓고 이용하면 좋을 듯 싶다!

'프로그램 > ORACLE' 카테고리의 다른 글

TNS 리스너가 없습니다.  (0) 2016.12.16
오라클 sysdba접속 방법  (0) 2016.12.16
[오라클] TRIGGER 구문 정리  (0) 2016.11.30
[오라클] MERGE INTO 구문 정리  (0) 2016.11.30
[Oracle]오라클 잡 스케줄러 생성  (0) 2016.11.30
Posted by 숏퐁숑
, |

최근에 달린 댓글

글 보관함