JSON_VALUE
语法:
JSON_VALUE(json_data, path_expr [returning_clause] [on_error_clause] [on_empty_clause])
功能:返回指定路径JSON标量数据。
说明:
- json_data:合法的JSON非标量数据(数组或对象);如果为空串''或空值NULL,则该函数返回空值NULL。
- path_expr:路径表达式;如果路径表达式非法,则该函数报错。
- returning_clause:
RETURNING [VARCHAR2[(size)]] | CLOB
- 说明:
- 未指定该子句时,默认返回VARCHAR2(3900);
- size取值范围为1-32767,未指定size时,默认为3900;
- 返回字符串转义字符会做反转义处理,例如标量字符串"A\"B"则反转义为A"B。
- on_error_clause:
[ERROR]|[NULL] ON ERROR
- 说明:
当出现以下错误时:
- json_data为不合法的JSON数据或为JSON标量;
- 路径表达式匹配到非标量数据(数组或对象);
- 路径表达式未匹配到数据,且未指定on_empty_clause子句;
- 返回JSON数据超过returning_clause子句指定的大小;
- 路径表达式匹配到多个JSON数据。
该子句返回值行为:
- ERROR ON ERROR:返回错误;
- NULL ON ERROR:返回空值NULL,也是未指定on_error_clause子句的默认行为。
- on_empty_clause:
[ERROR]|[NULL] ON EMPTY
- 说明:该子句描述路径表达式未匹配到JSON数据时,该子句返回值行为:
- ERROR ON EMPTY:返回错误;
- NULL ON EMPTY:返回空值NULL。
未指定该子句时,采用ON ERROR子句行为。
示例:
SQL> select json_value('{"A":1234}','$.A') from SYS_DUMMY; JSON_VALUE('{"A":1234}','$.A') ---------------------------------------------------------------- 1234 1 rows fetched. SQL> select json_value('[{"A":1234}, {"A":4321}]', '$[1].A') from SYS_DUMMY; JSON_VALUE('[{"A":1234}, {"A":4321}]', '$[1].A') ---------------------------------------------------------------- 4321 1 rows fetched. SQL> select json_value('{"A":{"B":[1,[2,[3,{"C":"Hello!"}]]]}}', '$.A.B[1][1][1].C' returning varchar2(20)) from SYS_DUMMY; JSON_VALUE('{"A":{"B":[1,[2,[3,{"C":"HELLO!"}]]]}}', '$.A.B[1][1 ---------------------------------------------------------------- Hello! 1 rows fetched.
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」关注作者【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。评论