---
title: "DELETEXML - OceanBase 数据库 V4.5.0 | OceanBase 文档中心"
description: "DELETEXML 描述 该函数用于删除 XPath 表达式在 XML 中匹配的一个或多个节点。 语法 DELETEXML( XMLType_instance, XPath_string [, namespace_string ]) 参数解释 字段 说明 XMLType_instance 指定一个 XMLType 实…"
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*P8CuR4UJ_FkAAAAAAAAAAAAADiGDAQ/original) OceanBase 数据库分布式版 - V 4.5.0

# DELETEXML

更新时间：2026-04-05 20:22:11

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.5.0/zh-CN/700.reference/500.sql-reference/100.sql-syntax/300.common-tenant-of-oracle-mode/500.functions-of-oracle-mode/200.single-row-functions-of-oracle-mode/1300.xml-functions-of-oracle-mode/400.modify-xmltype-data-functions-of-oracle-mode/300.deletexml-function-of-oracle-mode.md)  

## 描述

该函数用于删除 XPath 表达式在 XML 中匹配的一个或多个节点。

## 语法

```sql
DELETEXML( XMLType_instance, XPath_string [, namespace_string ])

```

## 参数解释

| **字段** | **说明** |
| --- | --- |
| XMLType_instance | 指定一个 XMLType 实例，表示目标 XML 文档。 |
| XPath_string | 指定一个 XPath 表达式，指示要删除的一个或多个节点。可以使用绝对路径（以斜杠开头）或相对路径（省略初始斜杠）。如果省略初始斜杠，则相对路径的上下文默认为根节点。XPath_string 指定的节点的所有子节点也将被删除。 |
| namespace_string | 可选项，用于为 XPath_string 提供命名空间信息。 |

## 返回类型

返回 XMLType 数据类型。

## 示例

- 使用 `DELETEXML` 函数从目标 XML 中删除匹配的节点。其中，目标 XML 是 `<bookstore>` 节点及其子节点；指定 XPath 表达式是 `/bookstore/author`，它指示要删除 `<bookstore>` 节点下的 `<author>` 节点；查询的结果使用 `AS` 关键字重命名为 `result`；最后，从 `dual` 表中检索结果。

  ```shell
  SELECT DELETEXML(
          XMLtype('<bookstore>
                    <book att="old"></book>
                    <author>carrot</author>
                  </bookstore>'),
          '/bookstore/author'
        ) AS result
  FROM dual;

  ```

  返回结果如下：

  ```shell
  +-----------------------------------------------+
  | RESULT                                        |
  +-----------------------------------------------+
  | <bookstore>
    <book att="old"/>
  </bookstore>
  |
  +-----------------------------------------------+
  1 row in set

  ```
 - 删除父节点下所有子节点后，父节点 namespace 仍然保留。

  ```sql
  SELECT
    DELETEXML(
      xmltype(
        '<a xmlns="ns1" xmlns:f="ns2">
          <f:b b1="b1" b2="b2">bbb1</f:b>
          <b b1="b1" b2="b2">bbb2</b>
        </a>'
      ),
      '/a/*',
      'xmlns="ns1"'
    )
  FROM dual;

  ```

  返回结果如下：

  ```shell
  +----------------------------------------------------------------------------------------------------------------------------------+
  | DELETEXML(XMLTYPE('<AXMLNS="NS1"XMLNS:F="NS2"><F:BB1="B1"B2="B2">BBB1</F:B><BB1="B1"B2="B2">BBB2</B></A>'),'/A/*','XMLNS="NS1"') |
  +----------------------------------------------------------------------------------------------------------------------------------+
  | <a xmlns="ns1" xmlns:f="ns2"/>
                                                                                                    |
  +----------------------------------------------------------------------------------------------------------------------------------+
  1 row in set

  ```

 上一篇 下一篇 ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
