構文
用途
INSERTXMLAFTER
は、属性のノードではないターゲット・ノードの直後に任意の種類の1つ以上のノードを挿入します。挿入の対象となるXML文書は、スキーマベースまたは非スキーマベースにすることができます。このファンクションは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>