KingbaseES中json函数的介绍
关键字:
KingbaseES、json、人大金仓
json相关操作函数各数据库产品,以及KES中不同数据库模式下支持的都有不同,下表为目前调研PG、Mysql、Oracle、DM、OpenGauss数据库产品以及KES的Mysql和Oracle模式下对json函数的支持情况。
蓝色为Mysql支持的JSON函数,黄色为Oracle支持的JSON函数,黑色为pg支持的JSON函数。红色为Mysql与Oracle均支持的JSON函数。
表1 各数据库支持的JSON函数一览表
| 名称 | PG | Mysql | Oracle | KES-Mysql | KES-Oracle | DM | OpenGauss |
|---|---|---|---|---|---|---|---|
| JSON_ARRAY | √ | √ | √ | √ | √ | √ | |
| JSON_ARRAYAGG | √ | √ | √ | √ | √ | ||
| JSON_ARRAY_APPEND | √ | √ | √ | ||||
| JSON_ARRAY_INSERT | √ | √ | √ | ||||
| JSON_CONTAINS | √ | √ | √ | √ | |||
| JSON_CONTAINS_PATH | √ | √ | √ | √ | |||
| JSON_DEPTH | √ | √ | √ | ||||
| JSON_EXTRACT | √ | √ | √ | √ | |||
| JSON_INSERT | √ | √ | √ | √ | |||
| JSON_KEYS | √ | √ | √ | √ | |||
| JSON_LENGTH | √ | √ | √ | ||||
| JSON_MERGE | √ | √ | |||||
| JSON_MERGE_PATCH | √ | √ | √ | ||||
| JSON_MERGE_PRESERVE | √ | √ | √ | ||||
| JSON_OBJECT | √ | √ | √ | √ | √ | √ | |
| JSON_OBJECTAGG | √ | √ | √ | √ | √ | ||
| JSON_OVERLAPS | √ | √ | |||||
| JSON_PRETTY | √ | √ | |||||
| JSON_QUOTE | √ | √ | √ | ||||
| JSON_REMOVE | √ | √ | √ | ||||
| JSON_REPLACE | √ | √ | √ | √ | |||
| JSON_SCHEMA_VALID | √ | ||||||
| JSON_SCHEMA_VALIDATION_REPORT | √ | ||||||
| JSON_SEARCH | √ | √ | √ | ||||
| JSON_SET | √ | √ | √ | √ | |||
| JSON_STORAGE_FREE | √ | ||||||
| JSON_STORAGE_SIZE | √ | √ | |||||
| JSON_TABLE | √ | √ | √ | √ | √ | ||
| JSON_TYPE | √ | √ | √ | √ | |||
| JSON_UNQUOTE | √ | √ | √ | √ | |||
| JSON_VALID | √ | √ | √ | ||||
| JSON_VALUE | √ | √ | √ | √ | √ | ||
| MEMBER OF | √ | ||||||
| JSON_EQUAL | √ | √ | |||||
| JSON_EXISTS | √ | √ | |||||
| JSON_TEXTCONTAINS | √ | ||||||
| JSON Type Constructor | √ | √ | |||||
| JSON_DATAGUIDE | √ | ||||||
| JSON_MERGEPATCH | √ | ||||||
| JSON_QUERY | √ | √ | √ | ||||
| JSON_SCALAR | √ | √ | |||||
| JSON_SERIALIZE | √ | √ | |||||
| JSON_TRANSFORM | √ | ||||||
| to_json(b) | √ | √ | √ | √ | √ | ||
| array_to_json | √ | √ | √ | √ | |||
| row_to_json | √ | √ | √ | √ | |||
| json(b)_build_array | √ | √ | √ | √ | √ | ||
| json(b)_build_object | √ | √ | √ | √ | √ | ||
| json(b)_object | √ | √ | √ | √ | |||
| json(b)_array_length | √ | √ | √ | √ | |||
| json(b)_each | √ | √ | √ | √ | √ | ||
| json(b)_each_text | √ | √ | √ | √ | √ | ||
| json(b)_extract_path | √ | √ | √ | √ | |||
| json(b)_extract_path_text | √ | √ | √ | √ | |||
| json(b)_object_keys | √ | √ | √ | √ | √ | ||
| json(b)_populate_record | √ | √ | √ | √ | |||
| json(b)_populate_recordset | √ | √ | √ | √ | |||
| json(b)_array_elements | √ | √ | √ | √ | √ | ||
| json(b)_array_elements_text | √ | √ | √ | √ | √ | ||
| json(b)_typeof | √ | √ | √ | √ | √ | ||
| json(b)_to_record | √ | √ | √ | √ | |||
| json(b)_to_recordset | √ | √ | √ | √ | |||
| json(b)_strip_nulls | √ | √ | √ | √ | |||
| json(b)_set | √ | √ | √ | √ | |||
| jsonb_insert | √ | √ | √ | ||||
| jsonb_pretty | √ | √ | √ | ||||
| jsonb_path_exists | √ | √ | √ | ||||
| jsonb_path_match | √ | √ | √ | ||||
| jsonb_path_query | √ | √ | √ | ||||
| jsonb_path_query_array | √ | √ | √ | ||||
| jsonb_path_query_first | √ | √ | √ | ||||
| jsonb_concat | √ | √ | √ | ||||
| json(b)_agg | √ | √ | √ | √ | |||
| json(b)_object_agg | √ | √ | √ | √ | √ |
从各数据库支持的JSON函数一览表中可以看出,在JSON函数方面,KES兼容了大部分函数的功能,对pg、mysql 以及Oracle兼容率在90%以上。 更多信息,参见help.kingbase.com.cn/v8/index.ht…