---
title: "概述 - OceanBase 数据库 V4.5.0 | OceanBase 文档中心"
description: 概述 OceanBase 数据库支持用户自定义聚合函数以应用于复杂数据。 功能适用性 该内容仅适用于 OceanBase 数据库企业版。OceanBase 数据库社区版暂不支持。 OceanBase 数据库支持预定义的聚合函数，例如 MAX 、 MIN 和 SUM ，用于执行多行操作。这些预定义的聚合函数只能用于标量…
---
切换语言

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

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

# 概述

更新时间：2026-03-26 17:56:44

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.5.0/zh-CN/700.reference/600.pl-reference/300.pl-oracle/700.stored-procedure-and-functions-oracle/700.user-defined-aggregation-functions-oracle/100.user-defined-func-overview-oracle.md)  

OceanBase 数据库支持用户自定义聚合函数以应用于复杂数据。

#### 功能适用性

该内容仅适用于 OceanBase 数据库企业版。OceanBase 数据库社区版暂不支持。

OceanBase 数据库支持预定义的聚合函数，例如 `MAX`、`MIN` 和 `SUM`，用于执行多行操作。这些预定义的聚合函数只能用于标量数据，不能用于复杂的数据类型，例如多媒体数据、不透明类型和 `LOB`。解决上述问题可以使用自定义聚合函数。

用户自定义的聚合函数可以在 SQL DML 语句中使用，就像内置聚合函数一样，也可以与标量数据一起使用。

用户自定义的聚合函数属于一项扩展功能，可以使用 `ODCIAggregate` 接口的一组 `ODCIAggregate` 例程来创建自定义聚合函数。

每个用户自定义的聚合函数最多使用如下四个 `ODCIAggregate` 例程或步骤，包括初始化、迭代、合并和终止。

- 初始化由 `ODCIAggregateInitialize()` 完成。OceanBase 数据库调用该例程以初始化用户自定义聚合，并返回初始化的聚合上下文作为对象类型实例。
 - 迭代通过 `ODCIAggregateIterate()` 执行。该例程可以重复调用。每次调用时，都会传入一个或一组新值以及当前聚合上下文。例程处理新值并返回已更新的聚合上下文。`NULL` 值在聚合期间被忽略并且不会传递到例程。
 - 合并由 `ODCIAggregateMerge()` 执行。调用该例程可以合并两个聚合上下文。此例程将两个上下文作为输入，将它们组合为单个聚合上下文并返回。
 - 使用 `ODCIAggregateTerminate()` 终止聚合。该例程将聚合上下文作为输入并返回聚合结果值。

 上一篇 下一篇 ![有帮助](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) 咨询热线
