Eu quero exportar usando copiar 5 colunas de uma tabela, 3 delas contêm valores de ID, texto e timestamp, mas 2 delas contêm elementos JSON e GeoJSON, por exemplo:
// Please, note the non-quoted string Value1
// when there is no space in the value itself:
{"key": "value with space", "other_key": Value1, ...}
mas ao usar este comando:
psql \
-d <connection_uri> \
--command "\copy public.mytable (id, json_array, geojson_field, status, timestamp) TO './file.csv' DELIMITER ';' CSV HEADER ENCODING 'UTF8' QUOTE '\"' ;"
O resultado parece estranho:
11784,"{'"First value'",'"Second value'", ThirdValue, '"Fourth val'",...
ou seja, está colocando aspas em uma ordem estranha: "single-double <field_value> single-double"
(também não entendo os cabeçalhos ...)
Eu gostaria de poder terminar com um objeto JSON verdadeiro no arquivo csv que eu possa copiar/colar em um validador, por exemplo, aqui sem erros.
Estou fazendo algo errado?
Se sim, como corrigi-lo?
PG:13
Eu acabo usando dessa maneira, usando
FORCE_QUOTE
, que na verdade funciona colocando 2 aspas duplas em torno das chaves e valores JSON quando necessário: