Le premier argument passé à la fonction pgsql json_populate_recordset
doit être un type de ligne. Si vous souhaitez utiliser le tableau json pour remplir la table existante anoop
vous pouvez simplement passer le tableau anoop
comme type de ligne comme ceci :
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"}]');
Ici le null
est la valeur par défaut à insérer dans les colonnes de table non définies dans le json passé.
Si vous n'avez pas de table existante, vous devez créer un type de ligne
pour contenir vos données json (c'est-à-dire les noms de colonnes et leurs types) et les transmettre comme premier paramètre, comme ceci anoop_type
:
create TYPE anoop_type AS (id int, name varchar(100));
select * from json_populate_recordset(null :: anoop_type,
'[...]') --same as above