Używam najnowszej wersji PostgreSQL 9.4.5-1.pgdg14.04+1
, a ja próbuje obliczyć długość tablicy JSONB użyciu funkcji JSON_ARRAY_LENGTH
jak opisano w PostgreSQL 9.4 DocumentationOblicz JSONB Array Długość Korzystanie z PostgreSQL 9.4
Oto dokładna kwerenda ja próbuje uruchomić:
SELECT JSON_ARRAY_LENGTH('["hi","ho"]'::jsonb) AS length
Kiedy uruchomić tę kwerendę, spodziewam zostać zwrócone wartość 2
, lecz jestem napotyka błąd: ERROR: function json_array_length(jsonb) does not exist
Czy brakuje mi czegoś bardzo oczywistego w dokumentacji? W szczególności podano, że można zadzwonić pod numer JSON_ARRAY_LENGTH
, podając typ danych: json
lub. Wyraźnie rzucam to na numer jsonb
, więc jestem trochę zagubiony.
Czy ktoś inny napotkał ten problem, czy ktoś mógłby wskazać, co robię źle?
UPDATE: Mis-zapoznać się z dokumentacją
I should have been nazywając JSONB_ARRAY_LENGTH
nie JSON_ARRAY_LENGTH
. Zwróć uwagę na "B" po "JSON". Dzięki chłopaki.
nie mogę znaleźć gdzie „To wyraźnie stanowi, możesz zadzwonić JSON_ARRAY_LENGTH przejściu albo JSON lub jsonb danych typu” - można go cytować dosłownie ?. – klin
To musi być nieporozumienie. [Instrukcja mówi] (http://www.postgresql.org/docs/current/interactive/functions-json.html): 'json_array_length (json) jsonb_array_length (jsonb)'. –
jak @klin mówi, myślę, że źle odczytujesz dokumentację, pokazuje, że musisz wywołać funkcje 'json_' lub' jsonb_' funkcji w zależności od typu danych: – Doon