Esto ilustra muy bien el problema:
Cuando la columna b es de tipo texto, y no una matriz, funciona lo siguiente:
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"] |
Pero si defino la b
columna como una matriz, me sale este error:
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.
¿Cómo puedo convencer / coaccionar json_to_record
(o json_populate_record
) para convertir una matriz JSON en la matriz Postgres del tipo de columna de destino?
fuente