返回首页

gbase数据、南大通用产品文档:GBase8calarm_report_max_count

更新日期:2024年09月11日

参数说明:
指定告警上报的最大次数。
参数修改请参考表GUC 参数设置方式进行设置。
取值范围:非负整型。
默认值:1

INSERT 将新的一行或多行添加到表。该语句有两个基本功能。它可使用您提供的列值创
建单个的新行,或可使用从其他表选择的数据创建一组新的行。

JSON/JSONB 数据类型参考3.12 JSON/JSONB 类型。

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
276
表5-9 JSON/JSONB 通用操作符
操作符
左操作数
类型
右操作数
类型
返回类型
描述
例子
例子结果
->
Array-json(
b)
int
json(b)
获得
array-json
元素。
下标
不存在返
回空。
'[{“a”:“foo
”},{“b”:“ba
r”},{“c”:“b
az”}]'::json
->2
{“c”:“baz”
}
->
object-json
(b)
text
json(b)
通过键获
得值。
不存
在则返回
空。
'{“a”:
{“b”:“foo”
}}'::json->'
a'
{“b”:“foo”
}
->>
Array-json(
b)
int
text
获得
JSON 数
组元素。

标不存在
返回空。
'[1,2,3]'::jso
n->>2
3
->>
object-json
(b)
text
text
通过键获
得值。
不存
在则返回
空。
'{“a”:1,“b”:
2}'::json->
>'b'
2
#>
container-js
on (b)
text[]
json(b)
获取在指
定路径的
JSON 对
象,
路径不
存在则返
回空。
'{“a”:
{“b”:{“c”:
“foo”}}}'::j
son
#>'{a,b}'
{“c”:
“foo”}
#>>
container-js
on (b)
text[]
text
获取在指
定路径的
JSON 对
象,
路径不
存在则返
回空。
'{“a”:[1,2,3
],“b”:[4,5,6
]}'::json
#>>'{a,2}'
3

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
277
对于#> 和#>> 操作符,当给出的路径无法查找到数据时,不会报错,会返回空。
表5-10 JSONB 额外支持操作符
操作符
右操作数类

描述
例子
@>
jsonb
左边的JSON 的顶层是否包含右
边JSON 的顶层所有项。
'{“a”:1, “b”:2}'::jsonb @>
'{“b”:2}'::jsonb
<@
jsonb
左边的JSON 的所有项是否全部
存在于右边JSON 的顶层。
'{“b”:2}'::jsonb <@ '{“a”:1,
“b”:2}'::jsonb
?
text
键/元素的字符串是否存在于
JSON 值的顶层。
'{“a”:1, “b”:2}'::jsonb ? 'b'
?|
text[]
这些数组字符串中的任何一个是
否做为顶层键存在。
'{“a”:1,“b”:2,“c”:3}' ::jsonb ?
| array['b', 'c']
?&
text[]
是否所有这些数组字符串都作为
顶层键存在。
'[“a”, “b”]'::jsonb ?&
array['a', 'b']
=
jsonb
判断两个jsonb 的大小关系,
同函
数jsonb_eq。
/
<>
jsonb
判断两个jsonb 的大小关系,
同函
数jsonb_ne。
/
<
jsonb
判断两个jsonb 的大小关系,
同函
数jsonb_lt。
/
>
jsonb
判断两个jsonb 的大小关系,
同函
数jsonb_gt。
/
<=
jsonb
判断两个jsonb 的大小关系,
同函
数jsonb_le。
/
>=
jsonb
判断两个jsonb 的大小关系,
同函
数jsonb_ge。
/
JSON/JSONB 支持的函数

array\_to\_json\(anyarray \[, pretty\_bool\]\)

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
278
描述:返回JSON 类型的数组。一个多维数组成为一个JSON 数组的数组。如果
pretty\_bool 为true,将在一维元素之间添加换行符。
返回类型:json
示例:
gbase=# SELECT array_to_json('{{1,5},{99,100}}'::int[]);
array_to_json
------------------
[[1,5],[99,100]]
(1 row)

row\_to\_json\(record \[, pretty\_bool\]\)
描述:返回JSON 类型的行。如果pretty\_bool 为true,将在第一级元素之间添加换行
符。
返回类型:json
示例:
gbase=# SELECT row_to_json(row(1,'foo'));
row_to_json
---------------------
{"f1":1,"f2":"foo"}
(1 row)

json_array_element(array-json, integer)、jsonb_array_element(array-jsonb, integer)
描述:同操作符`->`, 返回数组中指定下标的元素。
返回类型:json、jsonb
示例:
gbase=# select json_array_element('[1,true,[1,[2,3]],null]',2);
json_array_element
--------------------
[1,[2,3]]
(1 row)

json_array_element_text(array-json, integer)、
jsonb_array_element_text(array-jsonb, integer)

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
279
描述:同操作符`->>`, 返回数组中指定下标的元素。
返回类型:text、text
示例:
gbase=# select json_array_element_text('[1,true,[1,[2,3]],null]',2);
json_array_element_text
-----------------------
[1,[2,3]]
(1 row)

json_object_field(object-json, text)、jsonb_object_field(object-jsonb, text)
描述:同操作符`->`, 返回对象中指定键对应的值。
返回类型:json、json
示例:

gbase=# select json_object_field('{"a": {"b":"foo"}}','a');

json_object_field

-------------------

{"b":"foo"}

(1 row)

json_object_field_text(object-json, text)、jsonb_object_field_text(object-jsonb, text)
描述:同操作符`->>`, 返回对象中指定键对应的值。
返回类型:text、text
示例:

gbase=# select json_object_field_text('{"a": {"b":"foo"}}','a');

json_object_field_text

----------------------

{"b":"foo"}

(1 row)

json_extract_path(json, VARIADIC text[])、jsonb_extract_path((jsonb, VARIADIC text[])
描述:等价于操作符`#>`。根据$2 所指的路径,查找json,并返回。
返回类型:json、jsonb

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
280
示例:

gbase=# select
json_extract_path('{"f2":{"f3":1},"f4":{"f5":99,"f6":"stringy"}}',
'f4','f6');

json_extract_path

-------------------

"stringy"

(1 row)

json_extract_path_op(json, text[])、jsonb_extract_path_op(jsonb, text[])
描述:同操作符`#>`。根据$2 所指的路径,查找json,并返回。
返回类型:json、jsonb
示例:

gbase=# select
json_extract_path_op('{"f2":{"f3":1},"f4":{"f5":99,"f6":"stringy"}}',
'f4','f6');

json_extract_path_op

---------------------

"stringy"

(1 row)

json_extract_path_text(json, VARIADIC text[])、
jsonb_extract_path_text((jsonb, VARIADIC
text[])
描述:等价于操作符`#>>`。根据$2 所指的路径,查找json,并返回。
返回类型:text、text
示例:

gbase=# select
json_extract_path_text('{"f2":{"f3":1},"f4":{"f5":99,"f6":"stringy"}}',
'f4','f6');

json_extract_path_text

-----------------------

"stringy"

(1 row)

json_extract_path_text_op(json, text[])、jsonb_extract_path_text_op(jsonb, text[])

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
281
描述:同操作符`#>>`。根据$2 所指的路径,查找json,并返回。
返回类型:text、text
示例:

gbase=# select json_extract_path_text_op
('{"f2":{"f3":1},"f4":{"f5":99,"f6":"stringy"}}', 'f4','f6');

json_extract_path_text_op

--------------------------

"stringy"

(1 row)

json_array_elements(array-json)、jsonb_array_elements(array-jsonb)
描述:拆分数组,每一个元素返回一行。
返回类型:json、jsonb
示例:

gbase=# select json_array_elements('[1,true,[1,[2,3]],null]');

json_array_elements

---------------------

1

true

[1,[2,3]]

null

(4 rows)

json_array_elements_text(array-json)、jsonb_array_elements_text(array-jsonb)
描述:拆分数组,每一个元素返回一行。
返回类型:text、text
示例:
gbase=# select * from
json_array_elements_text('[1,true,[1,[2,3]],null]');
value
-----------
1
true
[1,[2,3]]

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
282
(4 rows)

json_array_length(array-json)、jsonb_array_length(array-jsonb)
描述:返回数组长度。
返回类型:integer
示例:

gbase=# SELECT json_array_length('[1,2,3,{"f1":1,"f2":[5,6]},4,null]');

json_array_length

-------------------

6

(1 row)

json_each(object-json)、jsonb_each(object-jsonb)
描述:将对象的每个键值对拆分转换成一行两列。
返回类型:setof(key text, value json)、setof(key text, value jsonb)
示例:

gbase=# select * from
json_each('{"f1":[1,2,3],"f2":{"f3":1},"f4":null}');

key |
value

-----+----------

f1
| [1,2,3]

f2
| {"f3":1}

f4
| null

(3 rows)

json_each_text(object-json)、jsonb_each_text(object-jsonb)
描述:将对象的每个键值对拆分转换成一行两列。
返回类型:setof(key text, value text)、setof(key text, value text)
示例:

gbase=# select * from
json_each_text('{"f1":[1,2,3],"f2":{"f3":1},"f4":null}');

key |
value

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
283

-----+----------

f1
| [1,2,3]

f2
| {"f3":1}

f4
|

(3 rows)

json_object_keys(object-json)、jsonb_object_keys(object-jsonb)
描述:返回对象中顶层的所有键。
返回类型:SETOF text
示例:

gbase=# select json_object_keys('{"f1":"abc","f2":{"f3":"a", "f4":"b"},
"f1":"abcd"}');

json_object_keys

------------------

f1

f2

f1

(3 rows)
jsonb 中会有去重操作

gbase=# select jsonb_object_keys('{"f1":"abc","f2":{"f3":"a", "f4":"b"},
"f1":"abcd"}');

jsonb_object_keys

-------------------

f1

f2

(2 rows)

json_populate_record(anyelement, object-json [, bool])、jsonb_populate_record(anyelement,
object-jsonb [, bool])
描述:$1 必须是一个复合类型的参数。将会把object-json 里的每个对键值进行拆分,
以键当做列名,与$1 中的列名进行匹配查找,并填充到$1 的格式中。
返回类型:anyelement、anyelement
示例:

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
284

gbase=# create type jpop as (a text, b int, c bool);

CREATE TYPE
gbase=# select * from
json_populate_record(null::jpop,'{"a":"blurfl","x":43.2}');
a
| b | c
--------+---+---
blurfl |
|
(1 row)
gbase=# select * from
json_populate_record((1,1,null)::jpop,'{"a":"blurfl","x":43.2}');
a
| b | c
--------+---+---
blurfl | 1 |
(1 row)
gbase=# DROP TYPE jpop;
DROP TYPE

json_populate_record_set(anyelement, array-json [, bool])、
jsonb_populate_record_set(anyelement, array-jsonb [, bool])
描述:参考上述函数json_populate_record、jsonb_populate_record,对$2 数组的每一个
元素进行上述参数函数的操作,因此这也要求$2 数组的每个元素都是object-json 类型的。
返回类型:setof anyelement、setof anyelement
示例:

gbase=# create type jpop as (a text, b int, c bool);

CREATE TYPE

gbase=# select * from json_populate_recordset(null::jpop,
'[{"a":1,"b":2},{"a":3,"b":4}]');

a | b | c

---+---+---

1 | 2 |

3 | 4 |

(2 rows)

json_typeof(json)、jsonb_typeof(jsonb)
描述:检测json 类型
返回类型:text、text

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
285
示例:

gbase=# select value, json_typeof(value)

gbase-# from (values (json '123.4'), (json '"foo"'), (json 'true'), (json
'null'), (json '[1, 2, 3]'), (json '{"x":"foo", "y":123}'), (NULL::json))
as
data(value);

value
| json_typeof

----------------------+-------------