WM_CONCAT과 DISTINCT 기능을 함께 이용하다 발생한 오류.

SELECT 결과에 CLOB 주소값?이 나오고, ORA-00932 오류가 발생했다.

 

문제가 되었던 함수는 아래의 wm_concat과 distinct...

 

wm_concat(distinct(컬럼명))

 

row 데이터를 A, B, C 이런식으로 자동 나열해주는 wm_concat...

찾아보니 이 wm_concat 함수가 10g 이상에서만 사용 가능하다고 해서,

혹시 버전호환 문제일까? 했는데 아니었다... (11g사용)

 

wm_concat은 데이터를 CLOB 타입으로 return하는데, 

중복을 제거해주는 DISTINCT 함수는 CLOB 타입을 지원하지 않아서 생긴 문제였다.

 

11g에서 사용 가능한 ListAgg 함수는 DISTINCT를 사용할 수 없어서

wm_concat 함수를 그대로 이용하는 방법을 찾아봤다.

 

to_char(wm_concat(distinct(컬럼명)))

 

이렇게 감싸주니 생각보다 간단히 해결되었다.

물론 진짜 CLOB 타입이 필요한 아주 긴 데이터였으면 곤란했겠지만,

실제로는 VARCHAR2(20 BYTE) 정도의 짧은 데이터가 한개, 많아야 두개 묶이는 데이터여서 큰 문제는 없을 것 같다.

 

 

 

참고

http://gurubee.net/article/55512

https://blog.daum.net/jwchoi1224/70

 

윈도우 10 작업 표시줄 초단위까지 나오도록 설정 바꾸기

 

 

 

 

 

1. Win+R 단축키로 실행 → regedit 입력해 레지스트리 편집기 실행

 

 

 

 

2. HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced

 

 

 

 

3. Advanced 우클릭, 새로만들기 → DWORD(32비트) 선택

 

 

 

 

4. ShowSecondsInSystemClock 입력

 

 

 

 

5. 더블클릭 후 값 데이터에 1 입력

 

 

 

 

6. 작업관리자에서 Windows 탐색기 다시시작

 

 

 

노트북 바꾸면 할 일

 

 

* 필요 없는, 안쓰는 프로그램들 삭제

 

윈도우 우클릭 → Windows PowerShell

 

-- yourphone.exe
Get-AppxPackage Microsoft.YourPhone -AllUsers | Remove-AppxPackage 

-- Cortana
Get-AppxPackage -allusers Microsoft.549981C3F5F10 | Remove-AppxPackage

 

 

 

 

 

블로그를 만들어야지, 만들어야지 생각만 하다가 드디어 블로그를 개설했다.

 

시간이 흐른 뒤에도 다시 찾아보기 쉽게,

공부를 하고, 업무를 하며 겪는 일들을 기록해보고 싶었다.

 

아직 부족한 게 많지만...

작년의 나보다 올해의 내가 나아졌듯,

내년의 나도 올해의 나보다 나아지도록 

천천히 나아가보기로!

 

+ Recent posts