2015-10-09 9 views
8

का उपयोग करते हुए मैं 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" के बाद "बी" पर ध्यान दें। धन्यवाद दोस्तों।

+1

के लिए खड़े मैं नहीं मिल सकता है, जहां "यह विशेष रूप से JSON_ARRAY_LENGTH या तो एक json या jsonb डेटा प्रकार गुजर कहा गया है कि आप कह सकते हैं" - आप यह सचमुच का हवाला देते हैं सकता है ?. – klin

+0

एक गलतफहमी होना चाहिए। [मैनुअल कहता है] (http://www.postgresql.org/docs/current/interactive/functions-json.html): 'json_array_length (json) jsonb_array_length (jsonb) '। –

+0

@klin कहते हैं, मुझे लगता है कि आप प्रलेखन को गलत तरीके से पढ़ रहे हैं, यह दिखाता है कि आपको डेटाटाइप – Doon

उत्तर

15
SELECT json[b]_array_length('["question","solved"]') AS length 

[ख] वैकल्पिक

+0

मेरे लिए, फ़ंक्शन नाम को काम करने के लिए कैप्स होना चाहिए (विंडोज़, शायद?) JSONB_ARRAY_LENGTH/JSON_ARRAY_LENGTH – Dakusan

संबंधित मुद्दे