本文提供了Oracle Database 12c第2版(12.2)中引入的SQL / JSON函数的示例。
建立测试表及数据
本文中的示例使用以下表:
JSON_OBJECT函数
JSON_OBJECT函数将逗号分隔的键值对列表转换为JSON中的对象成员。
JSON_OBJECTAGG聚合函数
JSON_OBJECTAGG聚合函数创建一个JSON对象,其中包含通过聚合每行中的键值对形成的对象成员列表。
JSON_ARRAY函数
JSON_ARRAY函数将以逗号分隔的表达式列表转换为JSON数组。
JSON_ARRAYAGG聚合函数
JSON_ARRAYAGG聚合函数类似于LISTAGG函数,将每行的表达式聚合到单个JSON数组中。
复杂的JSON 对象
每个函数调用本身可以是一个表达式,所以他们可以很容易地组合创建复杂的JSON对象。
如果我们将JSON格式化,我们可以看到更好的结构。
处理NULL
所有的SQL /JSON函数都具有确定如何处理空值的能力。默认值为NULL ON NULL,但这可以更改为ABSENT ON NULL。
RETURNING子句
SQL /JSON函数可以可选地包括RETURNING子句,以指定如何返回值。所有返回都可能使用BYTE或CHAR指定的不同大小的VARCHAR2值。除JSON_OBJECT函数外,所有函数都可以选择以CLOB格式返回其输出。
文档默认返回类型为VARCHAR2(4000)。
FORMAT JSON子句
FORMATJSON子句是可选的,用于“语义清晰度”。
使用数字做为Key
SQL /JSON函数不接受数字作为Key。
如果你需要强制他们使用,只需使用TO_CHAR函数将它们转换为字符串。