XMLPATCH
構文
目的
XMLPatchファンクションは、XmlPatch C APIのSQLインタフェースです。このファンクションは、指定された変更を適用してXML文書を修正します。修正されたXMLType文書が戻されます。
-
最初の引数には、入力
XMLType文書の名前を指定します。 -
2番目の引数には、最初の文書に適用する変更を含むXMLType文書を指定します。変更は、Xdiff XMLスキーマに基づいている必要があります。Oracle XML Developer's KitのJavaメソッド
diff()から、XML出力を指定できます。
関連項目:
このファンクションの使用方法と例については、『Oracle XML Developer's Kitプログラマーズ・ガイド』を参照してください。CのXML APIの詳細は、『Oracle Database XML C APIリファレンス』を参照してください
例
次の例では、別のXMLType文書に指定された変更を適用してXMLType文書を修正し、修正したXMLType文書を戻します。
SELECT XMLPATCH(
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"?>
<xd:xdiff xsi:schemaLocation="http://xmlns.oracle.com/xdb/xdiff.xsd
http://xmlns.oracle.com/xdb/xdiff.xsd"
xmlns:xd="http://xmlns.oracle.com/xdb/xdiff.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:bk="http://example.com">
<?oracle-xmldiff operations-in-docorder="true" output-model="snapshot"
diff-algorithm="global"?>
<xd:delete-node xd:node-type="element"
xd:xpath="/bk:book[1]/bk:tr[1]/bk:td[2]/bk:chapter[1]"/>
</xd:xdiff>')
)
FROM DUAL;