Как исправить «ОШИБКА: отсутствуют данные для столбца» - PullRequest
0 голосов
/ 16 июня 2019

Пожалуйста, см. РЕДАКТИРОВАТЬ ниже.

Я очень новичок в Postgres, поэтому прошу прощения, если я не очень хорошо спрашиваю об этом.Кроме того, я потратил несколько часов на поиски решений без удачи, поэтому еще раз прошу прощения, если это было где-то рассмотрено.

У меня есть текстовый файл, который мне нужно импортировать в Postgres 10.8, который представляет собой 201 столбец на расстоянии примерно 150 м строк.,Это около 2,5 ГБ в размере.В созданной мной таблице каждый столбец назначается в виде текста, и ниже показано, как я импортировал файл .txt:

COPY cl_all
FROM 'C:\Program Files\PostgreSQL\10\cl_1.txt'
WITH (delimiter '|');

При попытке импорта получаю следующее:

ОШИБКА: пропущены данныедля столбца (и ссылки на последний столбец)

КОНТЕКСТ: КОПИЯ cl_all, строка 247514: "9240410843 || 09003 | 000536805 | 1 | 09003000536805 001 | 536805 | 090800020 ..."

Ниже приведена строка 247514:

9240410843||09003|000536805|1|09003000536805                                    001|536805|09080002004|ENFI-000066-000000-000065|ENFI 000066  000065  000000    000000|1|ENFI-000066-000065|4808002020|||||ENFIELD|226|||ENFI|||||||163||1-FAMILY RESIDENCE||R33|10|1|||XXX|XXX|XXX|XXX|18||||XXX|XXX|||XXX|XXX|060824404|XXX|C039||||||||XXX|XXX|XXX|XXX|XXX|XXX||||||||||||||O|18||||XXX|RD|||XXX|XXX|060824404|C039||110810|46660|64150|A|110810|46660|64150|||||||4100.00|2018|2018|||||||19971231|42404||74981|001033000093|DD|19970228|19970228|97000.00|F|1|||Y|XXX \|95961.00||CNV||||||002418|FLEET MTG CORP||||||0.2800|12197|1954||3|5|1.00||1|||||001||BFL|||AVE||VIN||||||||FAH||||||002|G00||1.00|RAN|1|960|L||960||2570||200|||||||

. Теперь, сравнивая эту строку с другими записями строки в текстовом файле, я заметил, что последний символ в столбце 131 "\" может быть элементом, вызывающим проблемы, поэтомуЯ просто удалил только символ "\", и строка импортировалась нормально, но примерно через каждые 250 тыс. Строк возникает аналогичная проблема с "\" в другом столбце, выдающем ту же ошибку.

Есть ли способ, которым яможно импортировать этот текстовый файл в Postgres без необходимости предварительно удалять эти оскорбительные символы "\"?Я надеялся, что мог бы быть способ просто импортировать этот текстовый файл, включая "\", который он как-то содержит в тексте?Спасибо.

РЕДАКТИРОВАТЬ: Я пытался просто ответить на этот вопрос.

Я хотел бы импортировать следующий файл test.txt в Postgres:

col_1|col_2
A2|B2
A3\|B3
A4|B4

Я попробовал следующее:

COPY test
FROM 'C:\Program Files\PostgreSQL\10\test.txt'
WITH (delimiter '|');

Я получаю следующую ошибку:

ERROR:  missing data for column "col_2"
CONTEXT:  COPY test, line 3: "A3\|B3"

Может кто-нибудь придумать, как импортировать этот файл test.txt?Спасибо!

...