Skip Headers

오라클 10g 함수
10g Release 1 (10.1)
Go to Documentation Home
HOME
Go to Book List
ORA_home
Go to Table of Contents
연구회
Go to Index
자료실
Go to Master Index
ORA_10G
Go to Feedback page
MAIL

Go to previous page
Previous

 

XMLTRANSFORM

문법

MAIN

XMLTransform::=
Description of XMLTransform.gif follows

그림 설명

목적

MAIN

XMLTransform함수는 인수로써 XMLType인스턴스와 그 자체가 XMLType 인스턴스인 XSL스타일 쉬트를 취한다. 이 함수는 스타일 쉬트를 인스턴스로 적용하고, XMLType를 반환한다.

이 함수는 데이터를 데이터 베이스로부터 검색하는 것 처럼 스타일 쉬트에 따라서 데이터를 조직하는데 유효하다.

XMLTransform은 XMLType 인스턴스와 XML형태 시트를 인수로서 가져오며 이는 그 자체가 XMLType 인스턴스의 형식이다. 이는 해당 형태 시트를 그 인스턴스에 적용하고 XMLType 인스턴스를 반환합니다.

예제

MAIN

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.warehouse의 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>