Как исправить "ОШИБКА: отсутствуют данные для столбца"
Пожалуйста см. РЕДАКТИРОВАТЬ ниже.
Я очень новичок в 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? Спасибо!