注意: 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>