Загрузка таблицы PostgreSQL из CSV с данными с запятыми в скобках

Я получил некоторые данные CSV, которые мне нужно загрузить в таблицу PostgreSQL в следующем формате:

7227, {text with, commas}, 10.0, 3.0, text with no commas

Я хочу, чтобы строки моей таблицы выглядели так:

   7227 | text with, commas | 10.0 | 3.0 | text with no commas

Как я могу использовать COPY и заставить ее игнорировать запятые в скобках?

Я пытаюсь избежать предварительной обработки файла, хотя это вариант.

1 ответ

Решение

Боюсь, вам придется отредактировать файл. Этот формат должен быть в порядке:

7227, "text with, commas", 10.0, 3.0, text with no commas

альтернативно

7227, text with\, commas, 10.0, 3.0, text with no commas

согласно этому принципу в документации:

Символы обратной косой черты (\) могут использоваться в данных COPY для заключения в кавычки символов данных, которые в противном случае могли бы быть приняты в качестве разделителей строк или столбцов. В частности, следующим символам должен предшествовать обратный слеш, если они появляются как часть значения столбца: сам обратный слэш, перевод строки, возврат каретки и текущий символ-разделитель.

Другие вопросы по тегам