Oracle DEPTH() 函数使用指南

在 Oracle 数据库中,DEPTH() 是一个常与 Oracle XML DB 资源层级操作符(如 UNDER_PATH)协同使用的辅助函数。在基于 XML 存储库、虚拟文件夹或层次路径的检索操作中,DEPTH() 能够返回当前被检索项相对于指定根路径的相对层级深度(Levels Deep)。


语法

Oracle DEPTH() 函数的标准语法如下:

DEPTH( correlation_integer )

参数说明

  • correlation_integer:必需。一个非负整数,必须与查询中对应层级条件操作符(例如 UNDER_PATH 操作符的最后一个相关性参数)保持一致。

返回值

返回一个整数标量,表示当前目标项从指定的基准路径向下遍历的实际层级层数。


使用示例

在 UNDER_PATH 层次路径查询中获取深度

在 Oracle XML DB 资料档案库或资源视图中检索文件与文件夹层级:

SELECT 
    ANY_PATH,
    DEPTH(1) AS path_depth
FROM RESOURCE_VIEW
WHERE UNDER_PATH(res, 1, '/public/docs', 1) = 1;

在该示例中:

  • UNDER_PATH(res, 1, '/public/docs', 1) 筛选 /public/docs 路径下的资源;
  • 尾部的关联整数参数 1 与 DEPTH(1) 相互绑定,用于计算并输出每个匹配资源相对于 /public/docs 的层级深度。

相关 XML 函数与工具