इस मुद्दे को अच्छी तरह से दिखाता है:
जब कॉलम बी टाइप टेक्स्ट का हो, और एरे का न हो, तो निम्न कार्य करता है:
select *
from json_to_record('{"a":1,"b":["hello", "There"],"c":"bar"}')
as x(a int, b text, d text);
a | b | d
---+--------------------+---
1 | ["hello", "There"] |
लेकिन अगर मैं b
कॉलम को एक सरणी के रूप में परिभाषित करता हूं, तो मुझे यह त्रुटि मिलती है:
select *
from json_to_record('{"a":1,"b":["hello", "There"],"c":"bar"}')
as x(a int, b text[], d text)
ERROR: malformed array literal: "["hello", "There"]"
DETAIL: "[" must introduce explicitly-specified array dimensions.
मैं JSON सरणी को लक्ष्य स्तंभ प्रकार के पोस्टग्रेज सरणी में बदलने के लिए कैसे मना / कर सकता / सकती हूं json_to_record
(या json_populate_record
)?