Sto utilizzando l'ultima versione di PostgreSQL 9.4.5-1.pgdg14.04+1
, e sto cercando di calcolare la lunghezza di una matrice JSONB utilizzando la funzione JSON_ARRAY_LENGTH
come descritto nella PostgreSQL 9.4 DocumentationCalcolare JSONB Array Lunghezza Utilizzando PostgreSQL 9.4
Ecco l'interrogazione esatto sto tentando di eseguire:
SELECT JSON_ARRAY_LENGTH('["hi","ho"]'::jsonb) AS length
Quando eseguo quella query, mi sarei aspettato da restituire un valore di 2
, ma invece sto incontrando l'errore: ERROR: function json_array_length(jsonb) does not exist
Mi manca qualcosa di molto ovvio nella documentazione? In particolare si afferma che è possibile chiamare JSON_ARRAY_LENGTH
passando a un tipo di dati json
o jsonb
. Sto espressamente lanciando su jsonb
quindi sono un po 'in perdita.
Qualcun altro ha riscontrato questo problema o qualcuno avrebbe indicato cosa sto facendo male qui?
UPDATE: I Mis-Leggi La documentazione
sarei stata chiamata JSONB_ARRAY_LENGTH
, non JSON_ARRAY_LENGTH
. Notare la "B" dopo "JSON". Grazie ragazzi.
non riesco a trovare dove "Essa afferma specificamente si può chiamare JSON_ARRAY_LENGTH passando sia un JSON o jsonb di dati di tipo" - si potrebbe citare letteralmente ?. – klin
Deve essere un equivoco. [Il manuale dice] (http://www.postgresql.org/docs/current/interactive/functions-json.html): 'json_array_length (json) jsonb_array_length (jsonb)'. –
come dice @klin, penso che stai leggendo male la documentazione, mostra che devi chiamare le versioni 'json_' o' jsonb_' delle funzioni a seconda del tipo di dati – Doon