yunsh206

회원가입로그인

오라클에서 보통 CONCAT 함수는 컬럼과 컬럼을 붙일 때 쓴다.

 

SELECT CONCAT(col1, col2, ....) FROM 테이블

 

하면 결과적으로 SELECT col1 || col2 FROM 테이블 과 같은 뜻이 된다.

 

하나의 레코드에 있는 여러 컬럼들 혹은 표현식을 붙일 때 쓰는 셈...

 

그런데...

 

여러 행(레코드)로 나눠진 값을 붙이는 건 어떻게 할까. 이걸 SQL Query 가 아닌 Pro*C 나 Stored Procedure 에서는

 

변수에 값 집어넣고 Loop 돌리는 식으로 할텐데, Query 로 한 방에 안되나... 싶어 찾아봤더니...

SELECT  col1, WM_CONCAT(col2)

FROM    테이블

GROUP BY  col1

을 하면 col2 컬럼을 col1 별로 컴마( , )를 붙여서 출력해준다. 컴마가 붙는 게 싫으면

 

REPLACE(WM_CONCAT(col2), ',', '_')로 하면 컴마 대신에 언더바( _ )가 붙겠지.

 

덕분에 백업 스크립트 생성 query 만드는데 유용하게 잘 썼다.

SELECT  'TRUNCATE TABLE '
         || table_name
         || ';'
         || CHR(13)
         || 'INSERT INTO BAK_'
         || table_name
         || CHR(13)
         || '('
         || WMSYS.WM_CONCAT(column_name)
         || ')'
         || CHR(13)
         || 'SELECT '
         || WMSYS.WM_CONCAT(column_name)
         || CHR(13)
         || 'FROM '
         || table_name
         || CHR(13)
         || 'COMMIT;'
         script
FROM     ALL_TAB_COLS col
WHERE    col.owner = '오너'
AND      col.table_name LIKE '%' || :table_name || '%'
GROUP BY table_name
;

 

번호 제목 글쓴이 날짜 조회 수 추천 수
183 리눅스 SSH Network error: Software caused connection abort RanomA 2021.05.29 2018 0
182 인터넷 기본 설정 복원 창 띄우는 방법들 file RanomA 2021.05.01 1024 0
181 리눅스 디렉토리별 압축 파일 생성 쉘 스크립트 RanomA 2021.04.04 831 0
180 Javascript 숫자에 끊어 읽기 컴마(,) 추가 RanomA 2020.11.27 752 0
179 Javascript 문자열을 포맷 맞춰 날짜로, 날짜를 포맷 맞춘 문자열로 변환 RanomA 2020.11.26 719 0
178 Javascript 날짜 더하기 RanomA 2020.11.26 451 0
177 Javascript 해당 연월의 마지막 날짜 가져오기 RanomA 2020.11.25 365 0
176 Javascript isNullOrEmpty RanomA 2020.11.25 686 0
175 Javascript 전화번호 포매팅 RanomA 2020.11.25 2309 0
174 Javascript IN RanomA 2020.11.18 261 0
173 Javascript LPAD RanomA 2020.11.17 582 0
172 Adobe Creative Cloud 업데이트 실패 184(혹은 C184) 오류 file RanomA 2020.09.08 1072 0
171 오라클 테이블 레이아웃 조회 Query RanomA 2020.01.13 2064 0
170 SQL Developer의 폰트 설정에서 폰트 목록이 안나타날 때 [6] file RanomA 2019.12.30 4876 0
169 Underscore( _ 문자)를 카멜 케이스(Camel Case)로 변환하기 RanomA 2019.12.06 1815 0
168 라이트룸(Adobe Lightroom) 한자/일본어용 폰트 변경 file RanomA 2018.06.06 2144 0
167 입력기(IME)에 EN - 영어(미국) 키보드 US 가 표시될 때 [1] file RanomA 2016.05.03 1456 0
166 Thunderbolt 3와 USB-C RanomA 2016.04.28 682 0
165 ATOK 단축키 설정을 했는데도 입력 모드 변경이 잘 안될 때 file RanomA 2016.04.21 503 0
164 ATOK 단축키 설정 file RanomA 2016.04.18 563 0