INSERTCHILDXMLAFTER

ノート:

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

構文

目的

INSERTXMLCHILDAFTERは、1つ以上のコレクション要素をターゲット親要素の子として挿入します。各ターゲットは、指定された既存のコレクション要素の直後に挿入されます。挿入の対象となる既存のXML文書は、スキーマベースまたは非スキーマベースにすることができます。

  • XMLType_instanceは、挿入の対象となるXMLデータを識別します。

  • XPath_stringは、対象データ内の親要素の位置を特定します。子データは、それぞれの親要素の下に挿入されます。

  • child_exprは、挿入される子データの前に配置される既存の子の位置を指定する相対XPath 1.0式です。この式は、親XPathによって示された要素の子要素を指定する必要があります。また、条件を含むこともできます。

  • value_exprは、挿入するXMLType子要素データです。この引数の各トップレベル要素のノードは、child_exprによって示された要素と同じデータ型である必要があります。

  • オプションのnamespace_stringは、親要素、既存の子要素および挿入される子要素XMLデータの名前空間を指定します。

関連項目:

このファンクションの詳細は、『Oracle XML DB開発者ガイド』を参照してください。

次の例は、INSERTCHILDXMLの例と似ていますが、この例では、INSERTCHILDXMLの例で追加された/Ownerノードの後に、3番目の/Ownerノードが追加されています。問合せの出力は読み取りやすいように整えられています。

UPDATE warehouses
  SET warehouse_spec = INSERTCHILDXMLAFTER(warehouse_spec, '/Warehouse/Building',
    'Owner[2]', XMLType('<Owner>ThirdOwner</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>LesserCo</Owner>
                                    <Owner>ThirdOwner</Owner>