728x90
XMLQUERY
구문
XMLQUERY
( XQuery_string
[ XML_passing_clause ]
RETURNING CONTENT [NULL ON EMPTY]
)
목적
XMLQUERY를 사용하면 SQL 문에서 XML 데이터를 쿼리할 수 있습니다. 이 함수는 XQuery 표현식, 선택적인 컨텍스트 항목 및 다른 바인드 변수를 사용하고 이러한 입력 값을 사용하여 XQuery 표현식을 평가한 결과를 반환합니다.
- XQuery_string은 프롤로그를 포함한 완전한 XQuery 표현식입니다.
- XML_passing_clause의 expr은 XQuery 표현식을 평가할 컨텍스트로 사용되는 XMLType이나 SQL 스칼라 데이터 유형의 인스턴스를 반환하는 표현식입니다. AS 절이 없는 상태로 PASSING 절에 하나의 expr만 지정할 수 있습니다. 각 expr을 평가한 결과는 XQuery_string의 해당 식별자에 바인딩됩니다. 만약 AS 절이 따르지 않는 expr이 있다면, 그 표현식을 평가한 결과는 XQuery_string을 평가하는 컨텍스트 항목으로 사용됩니다. expr이 관계형 열인 경우 Oracle XML DB에서 선언된 콜레이션은 무시됩니다.
- RETURNING CONTENT는 XQuery 평가 결과가 XML 1.0 문서 또는 XML 1.0 세맨틱을 준수하는 문서 조각일 경우를 나타냅니다.
- 결과 집합이 비어 있으면 함수는 SQL NULL 값을 반환합니다. NULL ON EMPTY 키워드는 기본적으로 구현되어 있으며 의미적으로 명시적으로 표시되었습니다.
참고:
이 함수에 대한 자세한 내용은 Oracle XML DB Developer's Guide를 참조하십시오.
예제
다음 문은 oe.warehouses 테이블의 warehouse_spec 열을 XML_passing_clause의 컨텍스트 항목으로 지정합니다. 이 문은 면적이 50K보다 큰 창고에 대한 특정 정보를 반환합니다.
sql
SELECT warehouse_name,
EXTRACTVALUE(warehouse_spec, '/Warehouse/Area'),
XMLQuery(
'for $i in /Warehouse
where $i/Area > 50000
return <Details>
<Docks num="{$i/Docks}"/>
<Rail>
{
if ($i/RailAccess = "Y") then "true" else "false"
}
</Rail>
</Details>' PASSING warehouse_spec RETURNING CONTENT) "Big_warehouses"
FROM warehouses;
WAREHOUSE_ID Area Big_warehouses
------------ --------- --------------------------------------------------------
1 25000
2 50000
3 85700 <Details><Docks></Docks><Rail>false</Rail></Details>
4 103000 <Details><Docks num="3"></Docks><Rail>true</Rail></Details>
. . .
출처: 오라클 레퍼런스
원문 링크: Oracle XMLQUERY 함수 문서
반응형
'코딩 > 오라클 함수' 카테고리의 다른 글
[오라클 레퍼런스 함수] XMLSEQUENCE - XMLType 데이터 분할 및 반환 (0) | 2023.09.07 |
---|---|
[오라클 레퍼런스 함수] XMLROOT - XML 루트 정보 제공 (0) | 2023.09.07 |
[오라클 레퍼런스 함수] XMLPI - XML 처리 명령(XML processing instruction) 생성 (0) | 2023.09.07 |
[오라클 레퍼런스 함수] XMLPATCH - XML 문서 패치 및 XMLType 문서 반환 (0) | 2023.09.07 |
[오라클 레퍼런스 함수] XMLPARSE - XML 인스턴스 파싱 및 생성 (0) | 2023.09.06 |
댓글