Database/Oracle
오라클 XMLAGG 함수 개요(펌)
아로나
2012. 3. 11. 14:33
XMLAGG
문법 |

목적 |
XMLAgg함수는 집계 함수이다. XML fragment(조각)의 집합체를 취해서, 집계된 XML 문서를 반환한다. NULL을 반환하는 인수는 결과로부터 제거된다.
XMLAgg는 XMLAgg가 Node의 집합체를 반환하는 점을 제외하고는 SYS_XMLAgg와 유사하다. XMLFormat Object를 이용한 포맷을 받아들이지 않는다. 또한, XMLAgg는 SYS_XMLAgg처럼 요소 태그를 출력에서 둘러싸지 않는다.
Order_by_clause구문에서, 오라클 데이터 베이스는 열의 위치처럼 수치 문자를 설명하지 않고, 단지 수치 문자로 설명한다.
예제 |
다음 예제는 요소의 항목으로써 종업원 작업 ID와 이름과 함께 종업원 요소를 포함한 부서 요소를 산출한다.
SELECT XMLELEMENT("Department", XMLAGG(XMLELEMENT("Employee", e.job_id||' '||e.last_name) ORDER BY last_name)) as "Dept_list" FROM employees e WHERE e.department_id = 30; Dept_list ------------------------------------------------------------- <Department> <Employee>PU_CLERK Baida</Employee> <Employee>PU_CLERK Colmenares</Employee> <Employee>PU_CLERK Himuro</Employee> <Employee>PU_CLERK Khoo</Employee> <Employee>PU_MAN Raphaely</Employee> <Employee>PU_CLERK Tobias</Employee> </Department>
아래 결과는 단일행이다. XMLAgg는 행을 집계하기 때문이다. 다중 그룹에서 반환되는 행을 그룹화 하기 위하여 GROUP BY를 이용할수 있다.
SELECT XMLELEMENT("Department", XMLAGG(XMLELEMENT("Employee", e.job_id||' '||e.last_name))) AS "Dept_list" FROM employees e GROUP BY e.department_id; Dept_list --------------------------------------------------------- <Department> <Employee>AD_ASST Whalen</Employee> </Department> <Department> <Employee>MK_MAN Hartstein</Employee> <Employee>MK_REP Fay</Employee> </Department> <Department> <Employee>PU_MAN Raphaely</Employee> <Employee>PU_CLERK Khoo</Employee> <Employee>PU_CLERK Tobias</Employee> <Employee>PU_CLERK Baida</Employee> <Employee>PU_CLERK Colmenares</Employee> <Employee>PU_CLERK Himuro</Employee> </Department> . . .
출처 : http://www.statwith.pe.kr/ORACLE/functions200.htm