【发布时间】:2021-07-25 14:33:42
【问题描述】:
我正在尝试将 JSON 对象插入到多个表中
CREATE TABLE images
(
id serial primary key ,
image_url varchar(255),
filename varchar(255)
);
程序:
CREATE OR REPLACE procedure example1(
images_json json
)
AS
$$
DECLARE i json;
BEGIN
RAISE NOTICE 'ITEM ID is %',images_json->>'item_id'; --will be used later on
FOR i IN SELECT * FROM json_array_elements(images_json->>'images')
LOOP
INSERT INTO images (image_url, filename) VALUES (i->>'url', i->>'filename');
end loop;
end;
$$
language plpgsql;
当我测试它时
call example1('{"item_id": 123,"images":[{ "url": "https://google.com","filename": "google.png"},
{ "url": "https://yahoo.com","filename":"yahoo.png"},
{"url": "https://www.bing.com","filename":"bing.png"}]}')
我收到以下错误
错误:函数 json_array_elements(text) 不存在
没有函数匹配给定的名称和参数类型。您可能需要添加显式类型转换。
其中:PL/pgSQL function example1(json) line 5 at FOR over SELECT rows
我想将每个图像数组插入到images 表中。
【问题讨论】:
标签: sql postgresql