Ответ 1
Первый аргумент, передаваемый в функцию pgsql json_populate_recordset
должен иметь тип строки. Если вы хотите использовать массив json для заполнения существующей таблицы anoop
вы можете просто передать таблицу anoop
виде типа строки следующим образом:
insert into anoop
select * from json_populate_recordset(null::anoop,
'[{"id":67272,"name":"EE_Quick_Changes_J_UTP.xlsx"},
{"id":67273,"name":"16167.txt"},
{"id":67274,"name":"EE_12_09_2013_Bcum_Searchall.png"}]');
Здесь null
- это значение по умолчанию для вставки в столбцы таблицы, не заданные в переданном json.
Если у вас нет существующей таблицы, вам нужно создать тип строки для хранения ваших данных json (то есть имен столбцов и их типов) и передать их в качестве первого параметра, например, этот anoop_type
:
create TYPE anoop_type AS (id int, name varchar(100));
select * from json_populate_recordset(null :: anoop_type,
'[...]') --same as above