jsonb_populate_record_valid() 是一个用于测试 jsonb_populate_record() 的系统函数。
jsonb_populate_record_valid() 在 PostgreSQL 17 中添加。
用法
jsonb_populate_record_valid (baseanyelement,from_jsonjson) →boolean
如果提供的 json 值是有效输入,则返回 true,否则返回 false。
变更历史
- PostgreSQL 17
- 添加于 (提交 1edb3b49)
示例
jsonb_populate_record_valid() 的基本用法示例
postgres=# CREATE TYPE jsonb_test AS (val CHAR(3)); CREATE TYPE postgres=# SELECT jsonb_populate_record_valid( NULL::jsonb_test, '{"val": "foobar"}' ); jsonb_populate_record_valid ----------------------------- f (1 row)
这里提供的 ("foobar") 的值超过了 jsonb_test 类型的长度,因此返回 false。如果向 jsonb_populate_record() 提供相同的参数,将引发 ERROR。
postgres=# SELECT jsonb_populate_record(
NULL::jsonb_test,
'{"val": "foobar"}'
);
ERROR: value too long for type character(3)
参考资料
- PostgreSQL 文档: JSON 处理函数
