You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle SQL更新XML列数据:在<a>标签内插入<b>标签包裹原有子节点

各数据库XML列更新语句实现

以下实现均假设表名为your_table,存储XML的列名为XML,可根据实际场景替换成你的表、列名。

SQL Server 实现

列类型为XML类型时

UPDATE your_table
SET [XML].modify('
  insert element b {(/a/node())} 
  as first into (/a)[1]
')
WHERE [XML].exist('/a') = 1;

列类型为字符串类型(varchar/nvarchar)时

UPDATE your_table
SET [XML] = CAST(
  CAST([XML] AS XML).query('
    element a {
      /a/@*,
      element b { /a/node() }
    }
  ') AS NVARCHAR(MAX)
)
WHERE CAST([XML] AS XML).exist('/a') = 1;

MySQL 实现

UPDATE your_table
SET `XML` = UpdateXML(
  `XML`, 
  '/a',
  CONCAT(
    '<a ', 
    ExtractValue(`XML`, 'concat(/a/@*,"")'), 
    '><b>', 
    SUBSTRING_INDEX(SUBSTRING_INDEX(`XML`, '>', 2), '<', -1), 
    '</b></a>'
  )
)
WHERE `XML` REGEXP '^<a[^>]*>';

Oracle 实现

UPDATE your_table
SET "XML" = XMLQuery(
  'copy $tmp := . modify insert node element b {$tmp/a/node()} as first into $tmp/a return $tmp'
  PASSING "XML" RETURNING CONTENT
)
WHERE XMLEXISTS('/a' PASSING "XML");

内容的提问来源于stack exchange,提问作者Chetan Kondawle

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.14 06:48:08