例: XML値に対するXSL変換 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - XMLデータ型

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Published
2021年7月
Language
日本語
Last Update
2021-09-23
dita:mapPath
ja-JP/kxe1590704060061.ditamap
dita:ditavalPath
ja-JP/wrg1590696035526.ditaval
dita:id
B035-1140
Product Category
Software
Teradata Vantage

この例では、XSL変換メソッドにスタイルシートをパラメータ値として指定して呼び出すことにより、XML値を変換します。

SELECT customerXML.XSLTTRANSFORM(new XML('<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
   <xsl:template match="/Customer">
      <html>
      <title>Items Ordered</title>
      <body>
      <table border="1">
      <tr>
         <th>Item ID</th>
         <th>Description</th>
         <th>Part Number</th>
         <th>Qty</th>
         <th>Unit Price</th>
         <th>Total Price</th>
      </tr>
      <xsl:for-each select="Order/Item">
      <tr>
         <td><xsl:value-of select="@ID"/></td>
         <td><xsl:value-of select="Description"/></td>
         <td><xsl:value-of select="PartNumber"/></td>
         <td><xsl:value-of select="Quantity"/></td>
         <td><xsl:value-of select="UnitPrice"/></td>
         <td><xsl:value-of select="Price"/></td>
      </tr>
      </xsl:for-each>
      </table>
      </body>
      </html>
   </xsl:template>
</xsl:stylesheet>'), '') FROM customer WHERE customerID=1;

結果は、スタイルシートを使用してソースXMLを変換した結果としてのXML文書です。

この問合わせの結果の一部を以下に示します。省略記号(...)は、問合わせ結果の一部ではありません。これは、問合わせからさらに結果が返されるが、この例では省略されていることを示しています。

customerXML.XSLTTRANSFORM( NEW XML('<?xml version="1.0"?> <x ...
-----------------------------------------------------------------------
<html><title>Items Ordered</title><body><table border="1"><tr><th>Item ID</th><th>Description</th><th>Part Number</th><th>Qty</th><th>Unit Price</th><th>Total Price</th></tr><tr><td>001</td><td>Motoro ...