我想使用函数“jsonb_extract_path_text”,但它没有给出结果。 我从Hibernate和CriteriaBuilder开始,但最终我简化了我的情况。
现在我在pgAdmin查询工具中有几行(也在psql控制台中测试过)和PostgreSQL文档中的示例。
运算符的第一个语句正常工作:
SELECT '{"a": {"b":{"c": "foo"}}}'::jsonb#>>'{a,b}';
它给了我
{"c": "foo"}
当我尝试使用适当的函数并将两个操作数作为参数传递时:
SELECT jsonb_extract_path_text('{"a": {"b":{"c": "foo"}}}'::jsonb , '{a,b}');
它给了我NULL。
我还尝试使用数组构造函数定义路径:
SELECT jsonb_extract_path_text('{"a": {"b":{"c": "foo"}}}'::jsonb , ARRAY['a','b']);
它给了我一条错误信息:
ERROR: function jsonb_extract_path_text(jsonb, text[]) does not exist
Hint: No function matches the given name and argument types. You might need to add explicit type casts.
这些陈述有什么问题? 我的Postgres版本是9.6。
答案 0 :(得分:1)
SELECT jsonb_extract_path_text('{"a": {"b":{"c": "foo"}}}'::jsonb , 'a','b');