我有一个带有几对键值对的自定义json。我希望遍历数组的长度,并访问它们的每个键,然后插入到表中。我面临的问题是在循环过程中,查询无法访问该值。
do $$
DECLARE
DECLARE fname varchar;
DECLARE lname varchar;
DECLARE StartDate timestamp;
DECLARE EndDate timestamp;
DECLARE DateText varchar;
DECLARE uniqueData jsonb = '[
"fname": "PERFFBB",
"lname": "PERFE59-AB1899A-A8CAE59-AB1899A-AB1899A-AB1899A-AB1899A-A8CAE59"
"fname": "PERFD34",
"lname": "PERFCD5-232D322-BD88CD5-232D322-232D322-232D322-232D322-BD88CD5"
begin for r in 1..(jsonb_array_length(uniqueData) - 1)
fname = uniqueData[r].fname;
lname = uniqueData[r].lname;
-- this is giving a problem. It is unable to access the key.
for z in 1..2
StartDate = current_date::timestamp - concat(z, ' day')::interval;
EndDate = current_date::timestamp - concat(z - 1, ' day')::interval - interval '1 seconds';
DateText = (
to_char(
'now'::timestamp - concat(z, ' day')::interval,
'Mon DD, YYYY'
INSERT INTO table (
col1,
col2,
col3,
col4,
values (
fname,
lname,
StartDate,
EndDate,
DateText
end loop;
end loop;
$$;
发布于 2020-10-07 17:36:37
jsonb数组上的循环如下所示
DECLARE var1 RECORD;
FOR var1 IN
SELECT * FROM jsonb_to_recordset(uniqueData) as x(fname text, lname text)
-- var1 contains fname and lname fields