Обрезать данные из столбцов CHAR при экспорте данных с помощью команды postgres copy - PullRequest
0 голосов
/ 12 декабря 2011

Используя команду COPY (http://www.postgresql.org/docs/9.1/static/sql-copy.html), каждый столбец CHAR заполняется пробелами в результирующем текстовом файле.
Есть ли способ обрезать их во время этой процедуры?

Ответы [ 2 ]

3 голосов
/ 12 декабря 2011

На самом деле, это не имеет ничего общего с COPY.Тип данных char заполнен пробелами по определению.Это является правильным содержанием столбца.Прочтите руководство о типах данных .

char - это наследие эпохи, когда компьютерным системам приходилось тяжело с переменной длиной строки, и в настоящее время редко используется.Вы можете изменить это для экспорта, как описывает @mu.Однако, чтобы исправить это, используйте тип данных text (или varchar) в столбцах таблицы.

2 голосов
/ 12 декабря 2011

Вы можете указать запрос вместо имени таблицы с помощью COPY, чтобы вы могли добавить вызов TRIM, чтобы убрать начальные и конечные пробелы из столбцов char(n):

copy (select trim(some_column), ... from some_table) to stdout with csv;
...