Oracle XML 函数参考指南
Oracle 数据库原生提供了强大的 XML 数据库功能(Oracle XML DB),支持在数据库中存储、查询、生成和转换 XML 数据。借助丰富的内置 XML 函数,开发者可以在 SQL 查询中直接解析 XMLType 文档、使用 XPath/XQuery 提取节点、将关系型表数据生成符合标准的 XML 格式,或将复杂的 XML 数据投影为标准的关系表。
本页汇总了常用的 Oracle XML 核心函数与分类参考指南。
核心 XML 函数分类速查
1. XML 解析与关系型投影
将 XML 数据解析为对象或将其转换为关系型行列数据:
- XMLPARSE:将文本字符串解析为
XMLType实例,支持DOCUMENT(完整根节点文档)或CONTENT(文档片段)语法。 - XMLTABLE:通过 XPath 或 XQuery 表达式将 XML 文档内容投影成二维关系表,便于与普通 SQL 表进行
JOIN、过滤和分组。 - XMLCAST:将 XML 标量值或 XPath 评估结果安全转换为标量 SQL 数据类型(如
VARCHAR2、NUMBER、DATE)。
2. XML 节点探测与路径函数
用于判断 XML 结构中的节点存在性与层级信息:
- EXISTSNODE:根据给定的 XPath 路径判断节点是否存在,若存在返回
1,不存在返回0。 - DEPTH:在使用 XML 检索操作时返回指定节点的层级深度。
3. XML 构建与生成函数
用于将普通关系型数据直接构造成 XML 片段或文档:
4. XML 序列化与输出
- XMLSERIALIZE:将
XMLType数据序列化为字符串、CLOB 或 BLOB,支持格式化缩进排版(INDENT)和不缩进输出。
典型应用场景示例
从 XML 中提取关系型表格(XMLTABLE)
SELECT x.user_id, x.user_name
FROM XMLTABLE(
'/users/user'
PASSING XMLPARSE(DOCUMENT '<users><user id="1"><name>张三</name></user></users>')
COLUMNS
user_id NUMBER PATH '@id',
user_name VARCHAR2(50) PATH 'name'
) x;
常用工具推荐
在处理复杂的 Oracle XML 查询与格式化嵌套 SQL 时,推荐结合使用站内工具:
- 🔍 SQL 格式化工具:快速美化排版包含多层嵌套与 XPath 的长 SQL。
- 🧪 SQL 测试数据生成器:模拟批量字段数据,加速验证 SQL 业务逻辑。
目录
-
DEPTH
详解 Oracle DEPTH() 函数的语法、相关参数与应用场景,掌握在 Oracle XML 资源与层级路径检索中获取当前节点相对深度的用法。 -
EXISTSNODE
详解 Oracle EXISTSNODE() 函数的语法、XPath 判断规则与应用示例,快速判断 XML 文档中是否存在指定的节点或属性。 -
XMLCAST
详解 Oracle XMLCAST() 函数的语法、参数与类型转换示例,掌握如何将 XML 标量值或 XPath 评估结果转换为标量 SQL 数据类型。 -
XMLFOREST
详解 Oracle XMLFOREST() 函数的语法、别名指定与 NULL 元素忽略特性,掌握如何从关系型数据快速生成多字段 XML 元素森林。 -
XMLPARSE
详解 Oracle XMLPARSE() 函数的语法、DOCUMENT 与 CONTENT 模式区别,掌握如何将字符串与文本解析为标准的 XMLType 实例。 -
XMLPI
详解 Oracle XMLPI() 函数的语法、处理指令名称与内容规范,掌握如何在 Oracle 中生成标准的 XML Processing Instruction。 -
XMLSERIALIZE
详解 Oracle XMLSERIALIZE() 函数的语法、DOCUMENT 与 CONTENT 格式化输出、CLOB 转换与缩进排版(INDENT)用法。 -
XMLTABLE
详解 Oracle XMLTABLE() 函数的语法、参数与关系型映射示例,掌握如何使用 XPath/XQuery 将 XML 数据投影为关系表行与列。