728x90
XMLTRANSFORM
구문
XMLTRANSFORM(XMLType_instance, { XMLType_instance
| string
}
)
목적
XMLTransform 함수는 XMLType 인스턴스와 XSL 스타일 시트(또한 XMLType 인스턴스 형태)를 인수로 받아 해당 스타일 시트를 인스턴스에 적용하고 XMLType을 반환합니다.
이 함수는 데이터베이스에서 데이터를 검색할 때 스타일 시트를 기반으로 데이터를 구성하는 데 유용합니다.
참고:
이 함수에 대한 자세한 정보는 Oracle XML DB Developer's Guide에서 확인할 수 있습니다.
예제
XMLTransform 함수는 XSL 스타일 시트의 존재를 필요로 합니다. 다음은 요소를 노드 내에서 알파벳순으로 정렬하는 매우 간단한 스타일 시트의 예제입니다:
CREATE TABLE xsl_tab (col1 XMLTYPE);
INSERT INTO xsl_tab VALUES (
XMLTYPE.createxml(
'<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
<xsl:output encoding="utf-8"/>
<!-- alphabetizes an xml tree -->
<xsl:template match="*">
<xsl:copy>
<xsl:apply-templates select="*|text()">
<xsl:sort select="name(.)" data-type="text" order="ascending"/>
</xsl:apply-templates>
</xsl:copy>
</xsl:template>
<xsl:template match="text()">
<xsl:value-of select="normalize-space(.)"/>
</xsl:template>
</xsl:stylesheet> '));
1 row created.
다음 예제에서는 샘플 테이블 oe.warehouses의 warehouse_spec 중 하나에 포함된 요소를 알파벳순으로 정렬하는 데 xsl_tab XSL 스타일 시트를 사용합니다:
SELECT XMLTRANSFORM(w.warehouse_spec, x.col1).GetClobVal()
FROM warehouses w, xsl_tab x
WHERE w.warehouse_name = 'San Francisco';
XMLTRANSFORM(W.WAREHOUSE_SPEC,X.COL1).GETCLOBVAL()
--------------------------------------------------------------------------------
<Warehouse>
<Area>50000</Area>
<Building>Rented</Building>
<DockType>Side load</DockType>
<Docks>1</Docks>
<Parking>Lot</Parking>
<RailAccess>N</RailAccess>
<VClearance>12 ft</VClearance>
<WaterAccess>Y</WaterAccess>
</Warehouse>
출처: 오라클 레퍼런스
원문 링크: Oracle XMLTRANSFORM 함수 문서
반응형
'코딩 > 오라클 함수' 카테고리의 다른 글
[오라클 레퍼런스 함수] XMLTABLE - XQuery 결과를 관계형 테이블로 변환 (0) | 2023.09.07 |
---|---|
[오라클 레퍼런스 함수] XMLSERIALIZE - XML 직렬화(Serialization) 및 문자열 또는 LOB 반환 (0) | 2023.09.07 |
[오라클 레퍼런스 함수] XMLSEQUENCE - XMLType 데이터 분할 및 반환 (0) | 2023.09.07 |
[오라클 레퍼런스 함수] XMLROOT - XML 루트 정보 제공 (0) | 2023.09.07 |
[오라클 레퍼런스 함수] XMLQUERY - XML 데이터 쿼리 (0) | 2023.09.07 |
댓글