我要求在postgres存储过程中从json值解析文本数组。如下所示,
以下是我的程序实现,
CREATE OR REPLACE FUNCTION updateEventTable(inputdata json)
RETURNS void AS $$
DECLARE
msgList text[];
BEGIN
msgList := inputdata ->'messageList';
INSERT INTO "MyTable" ("MESSAGE_LIST")
values (msgList );
END;
$$
LANGUAGE PLPGSQL;
下面是我在参数字段中使用JSON字符串的存储过程调用
SELECT * from updateEventTable('{
"messageList": ["Message1", "Message2"]
}');
我是否采用正确的方法从json获取文本数组..请在此指导我。 表MyTable中的“MESSAGE_LIST”字段是文本数组类型。 postgres中是否有任何json支持功能可以完成这项工作?
我的要求是从json获取messageList的值作为文本数组并存储在数据库中
答案 0 :(得分:2)
inputdata ->'messageList'
是一个json数组。您应该使用json_array_elements_text()
解压缩并将其元素聚合到文本数组:
...
SELECT array_agg(elem)
INTO msgList
FROM json_array_elements_text(inputdata ->'messageList') elem;
INSERT INTO "MyTable" ("MESSAGE_LIST")
values (msgList );
...