Skip to content

适用虚谷数据库版本

v12.9



适用虚谷数据库版本

v12.9


JSON_INSERT

📄字数 619
👁️阅读量 加载中...

功能描述

将数据插入JSON文本。

语法格式

sql
json_insert( json_doc, path, val[, path, val]... )

输入参数

  • json_doc:JSON文本,JSON类型或字符类型。

  • path:路径表达式,字符类型。

  • val:val类型取值为NULL、布尔型、数值型、自定义类型(OBJECT、VARRAY、TABLE)、JSON类型以及其他能转换成字符型的类型。

输出结果

JSON类型。任意参数为NULL时,输出结果为NULL

提示

  • 从左到右计算新值,产生的新值用于后续计算。
  • 文档中path存在值时,该路径值对将被忽略。
  • 若路径表述为对象键,且并不存在于JSON文本的指定对象中,则该路径值对将被作为新成员加入对应对象。
  • 若路径表述为数组下标,且处于JSON文本指定数组末尾之后,数组使用新值扩展。若JSON文本路径指定不为数组,则将其包装成数组,然后使用新值扩展。
  • 除了上述两类不存在的路径的路径值对都将被忽略。
  • 以下情况将导致系统抛出错误:
    1. json_doc是无效的JSON文档。
    2. path是无效的路径表达式。
    3. 路径表达式中包含***通配符。

示例

sql
-- 插入多个数据到数组
SQL> SELECT JSON_INSERT('[1, [2, 3], {"a": [4, 5]}]', '$[0]', 0, '$[3]', 6);

+-------------------------------+
|             EXPR1             |
+-------------------------------+
| [1, [2, 3], {"a": [4, 5]}, 6] |
+-------------------------------+

-- 插入bool类型
SQL> SELECT JSON_INSERT('{"x": 1}', '$.y', true);

+---------------------+
|        EXPR1        |
+---------------------+
| {"x": 1, "y": true} |
+---------------------+

-- 插入JSON类型数据
SQL> SELECT JSON_INSERT('{"x": 1}', '$.y', CAST('{"z": 2}' AS JSON));

+-------------------------+
|          EXPR1          |
+-------------------------+
| {"x": 1, "y": {"z": 2}} |
+-------------------------+