on
[오라클 SQL 함수] XMLSEQUENCE 함수
[오라클 SQL 함수] XMLSEQUENCE 함수
반응형
o XMLSEQUENCE
| 문법
XMLSequence::=
| 목적
XMLSequence함수는 2개의 형태가 있다.
첫 번째 형태는 XMLType 인스턴트를 지정하여서 XMLType에 있는 top-level 노드의 varray를 반환한다.
두 번째 형태는 XMLFormat 오브젝트의 옵션 인스턴스를 가지는 REFCURSOR 인스턴스를 지정하여서 커서의 각 행에 대하여 XMLSequence 형태로써 XML 문서를 반환한다.
XMLSEQUENCE함수는 XMLType의 컬렉션을 반환하기 위해서, 이 함수를 테이블 구문에서 복수행에서 컬렉션 값을 unnest 하기 위해 이용할 수 있다. SQL 쿼리에서 더욱더 진행할 수 있다.
| 예제
다음 예제는 XMLSequence함수가 VARRAY 단일 요소 문서에서 복수 요소를 가지는 XML문서로 나누는 방법을 보인다. 이 예제에서, 테이블 키워드가 서브 쿼리의 FROM구문에서 이용할 수 있는 컬렉셕 테이블 값을 간주하도록 오라클 데이터베이스를 가리킨다.
Oracle Program
SELECT EXTRACT(warehouse_spec, '/Warehouse') as "Warehouse" FROM warehouses WHERE warehouse_name = 'San Francisco';
Results
Warehouse ------------------------------------------------------------ Rented 50000 1 Side load Y N Lot 12 ft 1 row selected.
Oracle Program
SELECT VALUE(p) FROM warehouses w, TABLE(XMLSEQUENCE(EXTRACT(warehouse_spec, '/Warehouse/*'))) p WHERE w.warehouse_name = 'San Francisco';
Results
VALUE(P) ---------------------------------------------------------------- Rented 50000 1 Side load Y N Lot 12 ft 8 rows selected.
이 두 개의 함수의 출력을 비교하기 위하여 XMLFOREST를 참조.
--------------------------------------------
반응형
from http://statwith.tistory.com/3020 by ccl(A) rewrite - 2021-10-25 09:27:03