wm_concat 예제

이 예제에서는 NULL 순서 절에도 불구하고 요소가 사전순으로 집계되었습니다. 위와 같은 상수 ORDER BY 식을 사용할 때 기본 동작으로 나타납니다. 이번에는 오라클이 그룹화 열을 사용하려고 했지만 유효한 식을 사용하지 않았음을 인식합니다(따라서 이전 예제와 는 다르지만 다른 오류 메시지가 나타납니다). 다음은 Oracle이 수락할 그룹화 열에 대한 결정적 표현식의 예입니다. 참고로 예제에 다음 샘플 데이터를 사용합니다. 답변: Laurent Schneider: 고유한 집계 함수를 작성하거나 wm_concat을 사용할 수 있습니다: 위에서 설명한 WM_CONCAT 함수는 오라클이 이미 사용자를 위해 만든 사용자 정의 집계 함수의 예입니다. WM_CONCAT을 사용하지 않으려면 asktom.oracle.com 설명된 대로 사용자 정의 집계 함수를 직접 만들 수 있습니다. 코멘트에 몇 가지 수정 김 버그 한센 감사합니다. wm_concat에서 반환된 결과에 대해 CAST의 사용은 실제로 지정된 길이로 크기를 조정하거나 확장합니다. wm_concat 결과와 함께 varchar2를 사용하는 경우 빈 공간이있는 패드가 맞지 않습니다. CAST 사용의 예: wm_concat은 문서화되지 않고 지원되지 않는 함수이며 현명하게 사용해야 합니다.

프로덕션 환경에서 사용하기 전에 개발 환경에서 철저하게 사용해야 합니다. 이것은 모순된 예이지만, 우리는 단순히 구분기호로 사용하기 위해 ASCII 문자로 DEPTNO를 변환했습니다. 이 표현은 그룹화 열의 값에 대한 결정적 표현식이며 Oracle은 이를 허용합니다. oracle-developer.net 예는 Oracle 10g의 COLLECT 함수를 사용하여 동일한 결과를 얻습니다. 이 메서드에는 테이블 형식의 내용을 문자열로 변환하는 테이블 형식과 함수가 필요합니다. 나는이 기사와 일치하도록 그의 방법을 약간 변경했습니다. 오라클 11gR2에서 시작하여 LISTAGG는 지원되지 않는 wm_concat 함수보다 선호됩니다. 답변: 오라클 전문가 로랑 슈나이더는 CAST 및 wm_concat의 사용에 대해 추가하기 위해 이 것을 가지고 있습니다: 요약하면, 새로운 LISTAGG 함수는 문자열 집계를 위한 가장 빠른 기술이며 간단한 기본 제공 함수라는 추가적인 이점이 있습니다. 요소의 순서가 관련이 없는 경우 정렬 없이 COLLECT를 사용하는 기술은 여전히 빠르지만 정렬된 문자열 집계의 경우 LISTAGG는 탁월합니다. 성능 비교에 사용되는 MODEL 예제에 문제가 있지만 예제에 사용되는 Oracle 버전(11.2.0.0.1 Windows 64비트) 또는 테스트 데이터베이스 자체로 격리될 수 있습니다.

최종 성능 비교는 MODEL 절을 사용하는 문자열 집계의 예와 함께 합니다. 다음 예제는 Rob van Wijk의 Oracle 정보 블로그에서 제공되었으며 샘플 데이터에 맞게 수정되었습니다. 질문 : wm_concat 함수를 사용하는 것에 대한 몇 가지 질문이 있습니다.

Posted in Bez kategorii