2014-09-11 9 views
9

Mam json zapisany jako tekst w jednym z moich wierszy bazy danych. dane json jest następującyjak parsować json za pomocą json_populate_recordset w postgres

[{"id":67272,"name":"EE_Quick_Changes_J_UTP.xlsx"},{"id":67273,"name":"16167.txt"},{"id":67274,"name":"EE_12_09_2013_Bcum_Searchall.png"}] 

do analizowania tego chcę użyć metody PostgreSQL

json_populate_recordset()

kiedy umieścić polecenie podobne

select json_populate_recordset(null::json,'[{"id":67272,"name":"EE_Quick_Changes_J_UTP.xlsx"},{"id":67273,"name":"16167.txt"},{"id":67274,"name":"EE_12_09_2013_Bcum_Searchall.png"}]') from anoop; 

daje mi następujący błąd pierwszy argument z json_populate_recordset musi być wierszem typu

uwaga: w klauzuli from "anoop" jest nazwą tabeli.

Czy ktoś może zaproponować mi, jak użyć metody json_populate_recordset do wyodrębnienia danych z tego łańcucha json.

mam Referencyjna metoda jest z http://www.postgresql.org/docs/9.3/static/functions-json.html

Odpowiedz

15

pierwszy argument przekazany do funkcji json_populate_recordset PgSQL powinny być typu wiersz. Musisz utworzyć typ wiersza, aby przechowywać dane json (np. Nazwy kolumn i ich typy) i przekazać go jako pierwszy parametr lub, jeśli chcesz użyć tablicy json do wypełnienia istniejącej tabeli anoop możesz po prostu przekazać stół Anoop jako typ wiersza tak:

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"}]'); 

Tutaj null jest domyślną wartością wstawić do kolumn tabeli nie wymienionych w json minął.

Powiązane problemy