INSERTCHILDXML
ノート:
INSERTCHILDXML
ファンクションは、非推奨です。これは、下位互換性を保つためにのみサポートされています。そのかわりに、XQuery Updateを使用してください。詳細は、『Oracle XML DB開発者ガイド』を参照してください。
構文
目的
INSERTCHILDXML
は、ユーザー指定の値を、XPath式で指定したノードのターゲットXMLに挿入します。このファンクションと「INSERTXMLBEFORE」を比較してください。
-
XMLType_instance
は、XMLType
のインスタンスです。 -
XPath_string
は、1つ以上の子ノードが挿入されるノードを1つ以上示すXPath式です。先頭にスラッシュを付けて絶対XPath_string
を指定したり、先頭のスラッシュを省略して相対XPath_string
を指定できます。先頭のスラッシュを省略した場合、相対パスのコンテキストは、デフォルトでルート・ノードに設定されます。 -
child_expr
は、挿入する要素または属性のノードを1つ以上指定します。 -
value_expr
は、挿入されるノードを1つ以上指定するXMLType
のフラグメントです。これは文字列に変換する必要があります。 -
オプションの
namespace_string
は、XPath_string
のネームスペース情報を提供します。このパラメータは、VARCHAR2
型である必要があります。
関連項目:
このファンクションの詳細は、『Oracle XML DB開発者ガイド』を参照してください。
例
次の例では、2番目の/Owner
ノードを、「APPENDCHILDXML」の例で更新したウェアハウスの1つのwarehouse_spec
に追加します。
UPDATE warehouses SET warehouse_spec = INSERTCHILDXML(warehouse_spec, '/Warehouse/Building', 'Owner', XMLType('<Owner>LesserCo</Owner>')) WHERE warehouse_id = 3; SELECT warehouse_spec FROM warehouses WHERE warehouse_id = 3; WAREHOUSE_SPEC ---------------------------------------------------------------------------- <?xml version="1.0"?> <Warehouse> <Building>Rented <Owner>Grandco</Owner> <Owner>LesserCo</Owner> </Building> <Area>85700</Area> <DockType/> <WaterAccess>N</WaterAccess> <RailAccess>N</RailAccess> <Parking>Street</Parking> <VClearance>11.5 ft</VClearance> </Warehouse>