---
title: "JSON_OBJECT - OceanBase 数据库 V4.5.0 | OceanBase 文档中心"
description: "JSON_OBJECT 描述 对于 SQL 输入的一系列 key-value 对， JSON_OBJECT() 函数将其转换成一个 JSON 格式的对象，包含了前面输入的所有 key-value 对。 语法 JSON_OBJECT([KEY]&#x27;key_name&#x27;: value_expr FORMAT JSON, &#x27;k…"
---
切换语言

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

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

# JSON_OBJECT

更新时间：2026-02-11 13:55:00

[编辑](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/200.json-object-oracle-mode.md)  

## 描述

对于 SQL 输入的一系列 key-value 对，`JSON_OBJECT()` 函数将其转换成一个 JSON 格式的对象，包含了前面输入的所有 key-value 对。

## 语法

```sql
JSON_OBJECT([KEY]'key_name': value_expr FORMAT JSON,
                         'key_name' VALUE value_expr
                         [ABSENT|NULL ON NULL,]
                         [RETURNING  CLOB|BLOB|JSON|VARCHAR2|VARCHAR2[size],]
                         [STRICT,]
                         [WITH UNIQUE KEYS]);

```

## 语法说明

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

- key-value 对的输入形式如下：
     1. 'key_name' : value_expression
     2. 'key_name' ： "value_string"
     3. 'key_name' VALUE value_expression
     4. 'key_name' VALUE 'value_string'
     5. column_name_x
     6. table_alias.*

其中前四种形式表示 key-value 对是通过 `KEY : VALUE` 来界定；第五种形式的输入只有一个列名，列名称就是 key_name, 列的内容就是 Value；第六种形式是通配符“*”的使用，表示该表的所有列都是输入，相当于这表的所有列都是用第五种的方式写了一遍。

- `FORMAT JSON`：声明该参数产生的值是 JSON 数据，因此不会在输出中存在引用('"')。
 - `NULL|ABSENT ON NULL`：仅当参数表达式的计算结果是 `NULL` 的时候生效。
     - `NULL ON NULL` 表示将 JSON `NULL` 值用作给定键的值。
     - `ABSENT ON NULL` 表示将忽略该参数。
 - `WITH UNIQUE KEYS`：用以限制计算结果中不能包含重复的 Key。
 - `STRICT`：用以验证输出结果是合法的 JSON 格式的数据。
 - `RETURNING CLOB|BLOB|JSON|VARCHAR2|VARCHAR2[size]`：用以指定返回值类型，其中`VARCHAR2[size]` 可以限制返回值的长度。

## 示例

```shell
# 入参是(a), (b)的场景
SELECT JSON_OBJECT(
'name' : first_name || ' ' || last_name,
'email' : email,
'phone' : phone_number,
'hire_date' : hire_date
)
    FROM employees
    WHERE employee_id = 140;

# 入参是(f)的场景，使用通配符
SELECT JSON_OBJECT(*) FROM employees WHERE employee_id = 140;
---------------------------------------------------------------------
{
"EMPLOYEE_ID":140,
"FIRST_NAME":"Joshua",
"LAST_NAME":"Patel",
"EMAIL":"JPATEL",
"PHONE_NUMBER":"650.121.1834",
"HIRE_DATE":"2006-04-06T00:00:00",
"JOB_ID":"ST_CLERK",
"SALARY":2500,
"COMMISSION_PCT":null,
"MANAGER_ID":123,"DEPARTMENT_ID":50
}

# 入参是(c), (d)的场景
SELECT JSON_OBJECT('NAME' VALUE first_name, d.*)
   FROM employees e, departments d
      WHERE e.department_id = d.department_id AND e.employee_id =140

# 使用 FORMAT JSON 子句
SELECT JSON_OBJECT ('name' value 'Foo') FROM DUAL;
+-------------------------------+
| JSON_OBJECT('NAME'VALUE'FOO') |
+-------------------------------+
| {"name":"Foo"}                |
+-------------------------------+

# 场景(a), (b) 使用关键字 KEY VALUE
SELECT JSON_OBJECT (
    KEY 'deptno' VALUE d.department_id,
    KEY 'deptname' VALUE d.department_name
    ) "Department Objects"
  FROM departments d
  ORDER BY d.department_id;

Department Objects
----------------------------------------
{"deptno":10,"deptname":"Administration"}
{"deptno":20,"deptname":"Marketing"}
{"deptno":30,"deptname":"Purchasing"}
{"deptno":40,"deptname":"Human Resources"}
{"deptno":50,"deptname":"Shipping"}

# 入参(1),(2)
SELECT JSON_OBJECT(
'first_name' VALUE first_name,
'last_name' VALUE last_name,
'email' VALUE email,
'hire_date' VALUE hire_date
)
FROM employees
WHERE employee_id = 140;
---------------------------------------------------------------------------
{
"first_name":"Joshua",
"last_name":"Patel",
"email":"JPATEL",
"hire_date":"2006-04-06T00:00:00"
}

```

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