首批通过分布式安全可靠测评,为关键业务系统打造
概述
更新时间:2026-03-26 17:56:44
OceanBase 数据库支持用户自定义聚合函数以应用于复杂数据。
功能适用性
该内容仅适用于 OceanBase 数据库企业版。OceanBase 数据库社区版暂不支持。
OceanBase 数据库支持预定义的聚合函数,例如 MAX、MIN 和 SUM,用于执行多行操作。这些预定义的聚合函数只能用于标量数据,不能用于复杂的数据类型,例如多媒体数据、不透明类型和 LOB。解决上述问题可以使用自定义聚合函数。
用户自定义的聚合函数可以在 SQL DML 语句中使用,就像内置聚合函数一样,也可以与标量数据一起使用。
用户自定义的聚合函数属于一项扩展功能,可以使用 ODCIAggregate 接口的一组 ODCIAggregate 例程来创建自定义聚合函数。
每个用户自定义的聚合函数最多使用如下四个 ODCIAggregate 例程或步骤,包括初始化、迭代、合并和终止。
初始化由
ODCIAggregateInitialize()完成。OceanBase 数据库调用该例程以初始化用户自定义聚合,并返回初始化的聚合上下文作为对象类型实例。迭代通过
ODCIAggregateIterate()执行。该例程可以重复调用。每次调用时,都会传入一个或一组新值以及当前聚合上下文。例程处理新值并返回已更新的聚合上下文。NULL值在聚合期间被忽略并且不会传递到例程。合并由
ODCIAggregateMerge()执行。调用该例程可以合并两个聚合上下文。此例程将两个上下文作为输入,将它们组合为单个聚合上下文并返回。使用
ODCIAggregateTerminate()终止聚合。该例程将聚合上下文作为输入并返回聚合结果值。