Oracle JSON_TABLE() 函数使用指南
Oracle JSON_TABLE() 是一个内置函数,它创建 JSON 数据的关系视图,将 JSON 数据转为表格中的行和列。
Oracle JSON_TABLE() 语法
这里是 Oracle JSON_TABLE() 函数的语法:
JSON_TABLE
( expr [ FORMAT JSON ] [ , path ]
[ JSON_table_on_error_clause ] [ JSON_table_on_empty_clause ]
JSON_columns_clause )
参数
expr-
必需的。它指定要查询的 JSON 数据。 对于
expr,指定评估为文本字面量的表达式。 如果expr是列,则列必须是数据类型VARCHAR2、CLOB或BLOB。 如果expr为空,则函数返回空值。 FORMAT JSON-
可选的。如果
expr是数据类型为BLOB的列,则必须指定FORMAT JSON。 path-
可选的。它指定 SQL/JSON 路径表达式。此函数使用路径表达式评估
expr并查找与路径表达式匹配或满足的标量 JSON 值。路径表达式必须是文本字面量。 JSON_table_on_error_clause-
可选的。您可以使用此子句来指定在发生错误时函数返回的值。发生错误包括: 输入不是格式良好的
JSON文本, 或者 在评估行路径表达式时找不到匹配项,或者其他错误。您可以使用以下子句:NULL ON ERRORERROR ON ERROR
JSON_table_on_empty_clause-
可选的。您可以使用此子句来指定在使用 SQL/JSON 路径表达式评估 JSON 数据时找不到匹配项时此函数返回的值。您可以指定以下子句:
NULL ON EMPTY- 当找不到匹配项时返回 null。ERROR ON EMPTY- 当找不到匹配项时返回适当的 Oracle 错误。DEFAULT literal ON EMPTY- 当找不到匹配项时返回literal。literal的数据类型必须与此函数返回的值的数据类型匹配。
JSON_columns_clause-
必须的。这个子句用来定义由
JSON_TABLE函数返回的虚拟关系表中的列。
返回值
Oracle JSON_TABLE() 函数返回一个从给定的 JSON 数据转化而来的结果集。
Oracle JSON_TABLE() 示例
这里有几个展示了 Oracle JSON_TABLE() 函数用法的示例。
示例 1
以下示例将一个 JSON 对象转化为关系视图:
SELECT *
FROM JSON_TABLE('{x:1, y:2}', '$' COLUMNS(x, y));
输出:
X Y
____ ____
1 2示例 2
以下示例将一个包含多个 JSON 对象的 JSON 数组转化为关系视图:
SELECT *
FROM JSON_TABLE('[{x:1, y:2},{x:3, y:4}]', '$[*]' COLUMNS(x, y));
输出:
X Y
____ ____
1 2
3 4示例 3
您可以使用 WHERE 语句来过滤 JSON_TABLE() 函数返回的行:
SELECT x, y
FROM JSON_TABLE('[{x:1, y:2},{x:3, y:4}]', '$[*]' COLUMNS(x, y))
WHERE x = 1;
输出:
X Y
____ ____
1 2结论
Oracle JSON_TABLE() 是一个内置函数,它创建 JSON 数据的关系视图,将 JSON 数据转为表格中的行和列。