Dies veranschaulicht das Problem gut:
Wenn Spalte b vom Typ Text und kein Array ist, funktioniert Folgendes:
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"] |
Wenn ich die b
Spalte jedoch als Array definiere, wird folgende Fehlermeldung angezeigt:
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.
Wie kann ich überzeugen / zwingen json_to_record
(oder json_populate_record
), ein JSON-Array in das Postgres-Array des Zielspaltentyps zu konvertieren?
quelle