APPENDCHILDXML

ノート:

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

構文

目的

APPENDCHILDXMLは、ユーザー指定の値を、XPath式で指定したノードの子としてターゲットXMLに追加します。

  • XMLType_instanceは、XMLTypeのインスタンスです。

  • XPath_stringは、1つ以上の子ノードが追加されるノードを1つ以上指定するXPath式です。先頭にスラッシュを付けて絶対XPath_stringを指定したり、先頭のスラッシュを省略して相対XPath_stringを指定できます。先頭のスラッシュを省略した場合、相対パスのコンテキストは、デフォルトでルート・ノードに設定されます。

  • value_exprは、XMLTypeの1つ以上のノードを指定します。これは文字列に変換する必要があります。

  • オプションのnamespace_stringは、XPath_stringのネームスペース情報を提供します。このパラメータは、VARCHAR2型である必要があります。

関連項目:

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

次の例では、/Buildingノードの値が「Rented」の場合に、/Ownerノードをoe.warehouses表のwarehouse_spec/Warehouse/Buildingノードに追加します。

UPDATE warehouses
  SET warehouse_spec = APPENDCHILDXML(warehouse_spec, 'Warehouse/Building',
    XMLType('<Owner>Grandco</Owner>'))
  WHERE EXTRACTVALUE(warehouse_spec, '/Warehouse/Building') = 'Rented';

SELECT warehouse_id,
       warehouse_name,
       EXTRACTVALUE(warehouse_spec, '/Warehouse/Building/Owner') "Prop.Owner"
  FROM warehouses
  WHERE EXISTSNODE(warehouse_spec, '/Warehouse/Building/Owner') = 1;

WAREHOUSE_ID WAREHOUSE_NAME  Prop.Owner
------------ --------------- ----------
           2 San Francisco   Grandco
           3 New Jersey      Grandco