|
注意: INSERTXMLAFTERファンクションは、非推奨です。これは、下位互換性を保つためにのみサポートされています。そのかわりに、XQuery Updateを使用してください。詳細は、『Oracle XML DB開発者ガイド』を参照してください。 |
構文

用途
INSERTXMLAFTERは、属性のノードではないターゲット・ノードの直後に任意の種類の1つ以上のノードを挿入します。挿入のターゲットであるXML文書は、XML Schemaに基づく文書でも、XML Schemaに基づかない文書でもかまいません。このファンクションはinsertXMLbeforeと似ていますが、ターゲット・ノードの前ではなく後に挿入します。
XMLType_instanceは、挿入のターゲット・ノードを指定します。
XPath_stringは、属性のノードを除く任意の0個以上のノードの位置をターゲット・ノード内で指定するXPath 1.0式です。XMLデータは、これらの各ノードの直後に挿入されます。つまり、指定された各ノードは、value_exprで指定されたノードの前に配置される兄弟ノードとなります。
value_exprは、挿入されるXMLデータです。任意の種類の1つ以上のノードを指定できます。ノードの順序は、挿入後も保持されます。
オプションのnamespace_stringは、ターゲット・ノードの名前空間です。
|
関連項目: このファンクションの詳細は、『Oracle XML DB開発者ガイド』を参照してください。 |
例
次の例は、INSERTCHILDXMLの例と似ていますが、この例では、INSERTCHILDXMLの例で追加された/Ownerノードの後に、3番目の/Ownerノードが追加されています。問合せの出力は読み取りやすいように整えられています。
UPDATE warehouses
SET warehouse_spec = INSERTXMLAFTER(warehouse_spec,
'/Warehouse/Building/Owner[1]', XMLType('<Owner>SecondOwner</Owner>'))
WHERE warehouse_id = 3;
SELECT warehouse_name,
EXTRACT(warehouse_spec, '/Warehouse/Building/Owner') "Owners"
FROM warehouses
WHERE warehouse_id = 3;
WAREHOUSE_NAME Owners
----------------------------------- ------------------------------
New Jersey <Owner>GrandCo</Owner>
<Owner>SecondOwner</Owner>
<Owner>LesserCo</Owner>