web-dev-qa-db-fra.com

Calculer la longueur d'un tableau JSONB à l'aide de PostgreSQL 9.4

J'utilise la dernière version de PostgreSQL 9.4.5-1.pgdg14.04+1, Et j'essaie de calculer la longueur d'un tableau JSONB en utilisant la fonction JSON_ARRAY_LENGTH Comme décrit dans Documentation PostgreSQL 9.4

Voici la requête exacte que j'essaie d'exécuter:

SELECT JSON_ARRAY_LENGTH('["hi","ho"]'::jsonb) AS length

Lorsque j'exécute cette requête, je m'attends à recevoir une valeur de 2, Mais je rencontre plutôt l'erreur: ERROR: function json_array_length(jsonb) does not exist

Suis-je en train de manquer quelque chose de très évident dans la documentation? Il indique spécifiquement que vous pouvez appeler JSON_ARRAY_LENGTH En passant un type de données json ou jsonb. Je transforme explicitement en jsonb donc je suis un peu perdu.

Quelqu'un d'autre a-t-il rencontré ce problème ou quelqu'un pourrait-il signaler ce que je fais mal ici?

MISE À JOUR: J'ai mal lu la documentation

J'aurais dû appeler JSONB_ARRAY_LENGTH, Pas JSON_ARRAY_LENGTH. Notez le "B" après "JSON". Merci les gars.

30
Joshua Burns
SELECT json[b]_array_length('["question","solved"]') AS length

[b] signifie facultatif

35