web-dev-qa-db-ja.com

PostgreSQL 9.4を使用してJSONB配列の長さを計算する

PostgreSQLの最新バージョン_9.4.5-1.pgdg14.04+1_を実行しており、 PostgreSQL 9.4ドキュメント で説明されている_JSON_ARRAY_LENGTH_関数を使用してJSONB配列の長さを計算しようとしています。

以下は、私が実行しようとしている正確なクエリです。

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

そのクエリを実行すると、_2_の値が返されるはずですが、代わりにエラーが発生します:ERROR: function json_array_length(jsonb) does not exist

ドキュメントに非常に明白なものが欠けていますか?具体的には、jsonまたはjsonbデータ型のいずれかを渡して_JSON_ARRAY_LENGTH_を呼び出すことができます。私は明示的にjsonbにキャストしているので、少し損をしています。

他の誰かがこの問題に遭遇しましたか、または誰かが私がここで間違っていることを指摘しますか?

更新:ドキュメントの読み間違い

_JSONB_ARRAY_LENGTH_ではなく、_JSON_ARRAY_LENGTH_を呼び出す必要がありました。 「JSON」の後の「B」に注意してください。みんなありがとう。

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

[b]オプションの略

35