Postgres: Как использовать КОПИРОВАНИЕ С РАЗДЕЛИТЕЛЯ с функцией CHR?

#postgresql

Вопрос:

Я пытаюсь импортировать текстовый файл в таблицу с одним столбцом, т. Е. Я не хочу, чтобы ни одна строка исходного файла была разделена на столбцы. Файл содержит множество различных символов (вкладки, запятые, пробелы), которые можно распознать как разделители. Поскольку bell ( CHR(7) ) не существует в файле данных, я выбрал его в качестве разделителя:

 COPY data_table(single_column) FROM '/tmp/data' WITH ENCODING 'LATIN1' DELIMITER CHR(7);
 

К сожалению, это приводит к ошибке:

ОШИБКА: синтаксическая ошибка в или около «chr»

Каков был бы правильный синтаксис?

Комментарии:

1. какую версию postgresql вы используете?

2. psql --version возвращает psql (PostgreSQL) 13.4 (Ubuntu 13.4-0ubuntu0.21.04.1)

Ответ №1:

Вы не можете использовать там функцию. Используйте обозначение escape.

  DELIMITER E'07'
 

Комментарии:

1. Спасибо! Это намного лучше, чем использовать шестнадцатеричный редактор для ввода символа колокола в сценарий…