我通过文档中的示例进行了操作,效果很好:
select * from json_populate_record(null::x, '{"a":1,"b":2}')
但是我自己构建的类似于此的简化 JSON 不起作用:-(
-- p_some_num of type int
select * from json_populate_record( null:my_record_type, '{"a":'||p_some_num||'',"b":2}' )
导致:
ERROR: function json_populate_record(my_record_type, text) does not exist
我应该更仔细地阅读并且不知道示例中的隐式
text
转换json
。在摆弄了一些错误之后,当然可以使用以下方法:Andreas Dietrich 回答了你的问题,我会用这个例子更具体一点。你可以在这里找到答案 。
根据文档,基本类型或记录类型是从类型或表中引用的。使用它可以确定列映射。
类型是用户定义的数据类型。您可以在此处找到有关 Type 构造的信息。
tldr;
为此,您必须创建一个这样的表。
或者这样的类型。
然后运行查询。