我運行的是最新版本的PostgreSQL 9.4.5-1.pgdg14.04+1
,並在嘗試作爲PostgreSQL 9.4 Documentation計算JSONB數組的長度使用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_ARRAY_LENGTH
通過json
或jsonb
數據類型。我明確地轉向jsonb
,所以我有點不知所措。
有沒有其他人遇到過這個問題,或者有人指出我在做什麼錯在這裏?
更新:我誤讀的文檔
我一直在呼籲JSONB_ARRAY_LENGTH
,不JSON_ARRAY_LENGTH
。注意「JSON」之後的「B」。多謝你們。
我找不到在哪裏「它明確規定,您可致電JSON_ARRAY_LENGTH傳球無論是JSON或jsonb數據類型」 - 你可以舉它的字面? – klin
必須是一個誤解。 [手冊說](http://www.postgresql.org/docs/current/interactive/functions-json.html):'json_array_length(json)jsonb_array_length(jsonb)'。 –
@klin說,我認爲你誤解了文檔,它表明你需要調用函數的'json_'或'jsonb_'版本,這取決於數據類型 – Doon