---
title: "JSON_OBJECTAGG - OceanBase 数据库 V4.5.0 | OceanBase 文档中心"
description: "JSON_OBJECTAGG 描述 JSON_OBJECTAGG() 函数将输入参数作为 key-value 对, 其中的 key 和 value 都是列表达式，将所有的 key-value 对组合到一个JSON 对象中，并将该对象返回。 语法 JSON_OBJECTAGG([KEY] key_expr [VALUE…"
---
切换语言

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

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

# JSON_OBJECTAGG

更新时间：2026-03-23 15:34:02

[编辑](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/1200.json-functions-oracle-mode/200.create-json-text-function-oracle/400.json-objectagg-oracle-mode.md)  

## 描述

`JSON_OBJECTAGG()` 函数将输入参数作为 key-value 对, 其中的 `key` 和 `value` 都是列表达式，将所有的 key-value 对组合到一个JSON 对象中，并将该对象返回。

## 语法

```sql
JSON_OBJECTAGG([KEY] key_expr [VALUE] value_expr
                              [ABSENT|NULL ON NULL,]
                              [RETURNING  CLOB|BLOB|JSON|VARCHAR2|VARCHAR2[size],]
                              [STRICT,]
                          [WITH UNIQUE KEYS]);

```

## 语法说明

`JSON_OBJECT()` 函数语法说明如下：

- `WITH UNIQUE KEYS`：用以限制返回结果中不能包含重复的 Key。
 - `NULL|ABSENT ON NULL`：表示仅当参数表达式的计算结果是 `NULL` 的时候生效。
     - `NULL ON NULL` 将 JSON `NULL` 值用作当前数组元素。
     - `ABSENT ON NULL` 将忽略该数组元素。
 - `STRICT`：用以验证输出结果是合法的 JSON 格式的数据。
 - `RETURNING CLOB|BLOB|JSON|VARCHAR2|VARCHAR2[size]`：用以指定返回值类型，其中`VARCHAR2[size]` 可以限制返回值的长度。

## 示例

```shell
# 使用默认参数
CREATE TABLE t (a int, k VARCHAR(10), v VARCHAR(10));
INSERT INTO t VALUES (1, 'key1', '"alfa"');
INSERT INTO t VALUES (1, 'key3', 'null');
INSERT INTO t VALUES (1, 'key4', 'false');
INSERT INTO t VALUES (2, 'key6', '124');
obclient> SELECT a, JSON_OBJECTAGG(k VALUE v) FROM t GROUP BY a;
+------+--------------------------------------------------+
| A    | JSON_OBJECTAGG(KVALUEV)                          |
+------+--------------------------------------------------+
|    1 | {"key1":"\"alfa\"","key3":"null","key4":"false"} |
|    2 | {"key6":"124"}                                   |
+------+--------------------------------------------------+

# 使用 FORMAT JSON 子句
obclient> SELECT a, JSON_OBJECTAGG(k VALUE v FORMAT JSON) FROM t GROUP BY a;
+------+------------------------------------------+
| A    | JSON_OBJECTAGG(KVALUEVFORMATJSON)        |
+------+------------------------------------------+
|    1 | {"key1":"alfa","key3":null,"key4":false} |
|    2 | {"key6":124}                             |
+------+------------------------------------------+

# 使用 NULL|ABSENT ON NULL 子句
obclient> INSERT INTO t VALUES (2, 'key7', null);
obclient> SELECT a, JSON_OBJECTAGG(k VALUE v NULL ON NULL) FROM t GROUP BY a;
+------+--------------------------------------------------+
| A    | JSON_OBJECTAGG(KVALUEVNULLONNULL)                |
+------+--------------------------------------------------+
|    1 | {"key1":"\"alfa\"","key3":"null","key4":"false"} |
|    2 | {"key6":"124","key7":"null"}                     |
+------+--------------------------------------------------+
obclient> SELECT a, JSON_OBJECTAGG(k VALUE v ABSENT ON NULL) FROM t GROUP BY a;
+------+--------------------------------------------------+
| A    | JSON_OBJECTAGG(KVALUEVABSENTONNULL)              |
+------+--------------------------------------------------+
|    1 | {"key1":"\"alfa\"","key3":"null","key4":"false"} |
|    2 | {"key6":"124"}                                   |
+------+--------------------------------------------------+

# 使用 RETURNING 子句
obclient> SELECT a, JSON_OBJECTAGG(k VALUE v returning varchar2) FROM t GROUP BY a;
+------+--------------------------------------------------+
| A    | JSON_OBJECTAGG(KVALUEVRETURNINGVARCHAR2)         |
+------+--------------------------------------------------+
|    1 | {"key1":"\"alfa\"","key3":"null","key4":"false"} |
|    2 | {"key6":"124"}                                   |
+------+--------------------------------------------------+
2 rows 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) 咨询热线
