次の例では、<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