例: XSLT_SHRED_BATCH <xsl:value-of select=""> - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - XMLデータ型

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
17.00
Published
2020年6月
Language
日本語
Last Update
2021-03-30
dita:mapPath
ja-JP/amr1556233250442.ditamap
dita:ditavalPath
ja-JP/amr1556233250442.ditaval
dita:id
B035-1140
Product Category
Software
Teradata Vantage

次の例では、<xsl:value-of select="">マッピング定義の使用方法を示します。<xsl:value-of select="">マッピング定義では、列と要素の名前が異なります。

この例を実行する前に、必要な権限を持つテスト ユーザーが作成され、必要なテーブルが作成されていることを確認します。参照整合性ルールについては、XSLT_SHRED_BATCHとXSLT_SHREDの例の設定を参照してください。

XMLソース文書を格納するために使用するステージング テーブルにデータを挿入します。

DELETE Input_Docs;

INSERT INTO Input_Docs VALUES(1, CREATEXML('<?xml version="1.0"?>
<Root>
 <predictixOfferMessage>
  <Offer><offerid>1000003</offerid></Offer>
  <mediaBlock><mediaBlockid>90000000010003</mediaBlockid></mediaBlock>
 </predictixOfferMessage>
</Root>'));

スタイルシート マッピングによってXSLT_SHRED_BATCHストアド プロシージャを呼び出し、ステージング入力テーブルに格納されるXMLデータをシュレッドします。次の引数を呼び出しに使用します。

  • queryStringは、次のようになります: sel * from xsltuser.Input_Docs
  • xsltMapping引数は、スタイルシートを入力とするCREATEXML関数を呼び出すことで指定します。このスタイルシートは、XML文書に適用されます。
  • この例では、externalContextはNULLです。
  • resultCode:res.で返されます。操作が成功すると0が返されます。
CALL TD_SYSXML.XSLT_SHRED_BATCH('sel * from xsltuser.Input_Docs', CREATEXML('<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/Root">
<Transaction>
 <Insert>
  <Table>
   <xsltuser.Offer1>
    <xsl:for-each select="predictixOfferMessage">
     <Row>
      <C_COL1><xsl:value-of select="Offer/offerid"/></C_COL1>
      <C_COL2><xsl:value-of select="mediaBlock/mediaBlockid"/></C_COL2>
     </Row>
    </xsl:for-each>
   </xsltuser.Offer1>
  </Table>
 </Insert>
</Transaction>
</xsl:template>
</xsl:stylesheet>
'), NULL, :res);
結果: ターゲット テーブルで更新されたデータを表示するには次を実行します。SELECT * FROM Offer1;
C_COL1     C_COL2
----------  -------------------------------------------
1000003     90000000010003