> ## Documentation Index
> Fetch the complete documentation index at: https://clickhouse.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

> Документация по формату CustomSeparated

# CustomSeparated

| Входной | Выходной | Псевдоним |
| ------- | -------- | --------- |
| ✔       | ✔        |           |

<div id="description">
  ## Описание
</div>

Похож на [Template](/docs/ru/reference/formats/Template/Template), но выводит или считывает все имена и типы столбцов, а также использует правило экранирования из настройки [format\_custom\_escaping\_rule](/docs/ru/reference/settings/formats#format_custom_escaping_rule) и разделители из следующих настроек:

* [format\_custom\_field\_delimiter](/docs/ru/reference/settings/formats#format_custom_field_delimiter)
* [format\_custom\_row\_before\_delimiter](/docs/ru/reference/settings/formats#format_custom_row_before_delimiter)
* [format\_custom\_row\_after\_delimiter](/docs/ru/reference/settings/formats#format_custom_row_after_delimiter)
* [format\_custom\_row\_between\_delimiter](/docs/ru/reference/settings/formats#format_custom_row_between_delimiter)
* [format\_custom\_result\_before\_delimiter](/docs/ru/reference/settings/formats#format_custom_result_before_delimiter)
* [format\_custom\_result\_after\_delimiter](/docs/ru/reference/settings/formats#format_custom_result_after_delimiter)

<Note>
  Он не использует настройки правил экранирования и разделители из строк формата.
</Note>

Также есть формат [`CustomSeparatedIgnoreSpaces`](/docs/ru/reference/formats/CustomSeparated/CustomSeparatedIgnoreSpaces), похожий на [TemplateIgnoreSpaces](/docs/ru/reference/formats/Template/TemplateIgnoreSpaces).

<div id="example-usage">
  ## Пример использования
</div>

<div id="inserting-data">
  ### Вставка данных
</div>

Используя следующий TXT-файл с именем `football.txt`:

```text theme={null}
row('2022-04-30';2021;'Sutton United';'Bradford City';1;4),row('2022-04-30';2021;'Swindon Town';'Barrow';2;1),row('2022-04-30';2021;'Tranmere Rovers';'Oldham Athletic';2;0),row('2022-05-02';2021;'Salford City';'Mansfield Town';2;2),row('2022-05-02';2021;'Port Vale';'Newport County';1;2),row('2022-05-07';2021;'Barrow';'Northampton Town';1;3),row('2022-05-07';2021;'Bradford City';'Carlisle United';2;0),row('2022-05-07';2021;'Bristol Rovers';'Scunthorpe United';7;0),row('2022-05-07';2021;'Exeter City';'Port Vale';0;1),row('2022-05-07';2021;'Harrogate Town A.F.C.';'Sutton United';0;2),row('2022-05-07';2021;'Hartlepool United';'Colchester United';0;2),row('2022-05-07';2021;'Leyton Orient';'Tranmere Rovers';0;1),row('2022-05-07';2021;'Mansfield Town';'Forest Green Rovers';2;2),row('2022-05-07';2021;'Newport County';'Rochdale';0;2),row('2022-05-07';2021;'Oldham Athletic';'Crawley Town';3;3),row('2022-05-07';2021;'Stevenage Borough';'Salford City';4;2),row('2022-05-07';2021;'Walsall';'Swindon Town';0;3)
```

Настройте параметры пользовательского разделителя:

```sql theme={null}
SET format_custom_row_before_delimiter = 'row(';
SET format_custom_row_after_delimiter = ')';
SET format_custom_field_delimiter = ';';
SET format_custom_row_between_delimiter = ',';
SET format_custom_escaping_rule = 'Quoted';
```

Вставьте данные:

```sql theme={null}
INSERT INTO football FROM INFILE 'football.txt' FORMAT CustomSeparated;
```

<div id="reading-data">
  ### Чтение данных
</div>

Настройте параметры пользовательского разделителя:

```sql theme={null}
SET format_custom_row_before_delimiter = 'row(';
SET format_custom_row_after_delimiter = ')';
SET format_custom_field_delimiter = ';';
SET format_custom_row_between_delimiter = ',';
SET format_custom_escaping_rule = 'Quoted';
```

Считайте данные в формате `CustomSeparated`:

```sql theme={null}
SELECT *
FROM football
FORMAT CustomSeparated
```

Вывод будет в настроенном пользовательском формате:

```text theme={null}
row('2022-04-30';2021;'Sutton United';'Bradford City';1;4),row('2022-04-30';2021;'Swindon Town';'Barrow';2;1),row('2022-04-30';2021;'Tranmere Rovers';'Oldham Athletic';2;0),row('2022-05-02';2021;'Port Vale';'Newport County';1;2),row('2022-05-02';2021;'Salford City';'Mansfield Town';2;2),row('2022-05-07';2021;'Barrow';'Northampton Town';1;3),row('2022-05-07';2021;'Bradford City';'Carlisle United';2;0),row('2022-05-07';2021;'Bristol Rovers';'Scunthorpe United';7;0),row('2022-05-07';2021;'Exeter City';'Port Vale';0;1),row('2022-05-07';2021;'Harrogate Town A.F.C.';'Sutton United';0;2),row('2022-05-07';2021;'Hartlepool United';'Colchester United';0;2),row('2022-05-07';2021;'Leyton Orient';'Tranmere Rovers';0;1),row('2022-05-07';2021;'Mansfield Town';'Forest Green Rovers';2;2),row('2022-05-07';2021;'Newport County';'Rochdale';0;2),row('2022-05-07';2021;'Oldham Athletic';'Crawley Town';3;3),row('2022-05-07';2021;'Stevenage Borough';'Salford City';4;2),row('2022-05-07';2021;'Walsall';'Swindon Town';0;3)
```

<div id="format-settings">
  ## Настройки формата
</div>

Дополнительные настройки:

| Настройка                                                                                                                                          | Описание                                                                                                                                       | По умолчанию |
| -------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ------------ |
| [input\_format\_custom\_detect\_header](/docs/ru/reference/settings/formats#input_format_custom_detect_header)                                          | включает автоматическое определение заголовка с именами и типами, если он есть.                                                                | `true`       |
| [input\_format\_custom\_skip\_trailing\_empty\_lines](/docs/ru/reference/settings/formats#input_format_custom_skip_trailing_empty_lines)                | пропускает конечные пустые строки в конце файла.                                                                                               | `false`      |
| [input\_format\_custom\_allow\_variable\_number\_of\_columns](/docs/ru/reference/settings/formats#input_format_custom_allow_variable_number_of_columns) | разрешает переменное число столбцов в формате CustomSeparated, игнорирует лишние столбцы и использует значения по умолчанию для отсутствующих. | `false`      |
