XMLDIFF

構文

目的

XMLDiffファンクションは、XmlDiff C APIのSQLインタフェースです。このファンクションは、2つのXML文書を比較し、Xdiffスキーマに基づいたXMLの差異を取得します。diff文書がXMLType文書として戻されます。

  • 最初の2つの引数には、2つのXMLType文書の名前を指定します。

  • integerには、CファンクションXmlDiffのhashLevelを表す数値を指定します。ハッシュを使用しない場合は、この引数を0(ゼロ)に設定するか、または引数全体を省略します。ハッシュを使用しないでフラグを指定する場合は、この引数を0(ゼロ)に設定する必要があります。

  • stringには、ファンクションの動作を制御するフラグを指定します。これらのフラグは、セミコロンで区切られた1つ以上の名前で指定します。これらの名前は、XmlDiffファンクションの定数の名前と同じです。

関連項目:

このファンクションの使用方法と例については、『Oracle XML Developer's Kitプログラマーズ・ガイド』を参照してください。CのXML APIの詳細は、『Oracle Database XML C APIリファレンス』を参照してください

次の例では、2つのXML文書を比較し、差異をXMLType文書として戻します。

SELECT XMLDIFF(
XMLTYPE('<?xml version="1.0"?>
<bk:book xmlns:bk="http://example.com">
   <bk:tr>
        <bk:td>
                <bk:chapter>
                        Chapter 1.
                </bk:chapter>
        </bk:td>
        <bk:td>
                 <bk:chapter>
                        Chapter 2.
                </bk:chapter>
        </bk:td>
   </bk:tr>
</bk:book>'),
XMLTYPE('<?xml version="1.0"?>
<bk:book xmlns:bk="http://example.com">
   <bk:tr>
        <bk:td>
                <bk:chapter>
                        Chapter 1.
                </bk:chapter>
        </bk:td>
        <bk:td/>
   </bk:tr>
</bk:book>')
)
FROM DUAL;