У меня есть довольно большой файл .txt ~ 9gb, и я хочу загрузить этот файл txt в postgres. Первая строка - это заголовок, за которым следуют все данные. Если я опубликую COPY непосредственно данные, заголовок вызовет ошибку, которая не соответствует типу данных моей таблицы postgres, поэтому мне нужно будет как-то удалить ее.
Пример данных: ProjectID, MailId, MailCodeId, prospectid, listid, datemailed, количество, пожертвованы, застежка-молния, zip4, VectorMajor, VectorMinor, PackageID, фаза, DatabaseID, количество2
15,53568419,89734,219906,15,2011-05-11 00:00:00,0,0,90720,2915,NonProfit,POLICY,230,3,1,0
16,84141863,87936,164657,243,2011-03-10 00:00:00,0,0,48362,2523,NonProfit,POLICY,1507,5,1,0
16,81442028,86632,15181625,243,2011-01-19 00:00:00,0,0,11501,2115,NonProfit,POLICY,1508,2,1,0
В то время как функция COPY для postgres имеет параметр "заголовок", который может игнорировать первую строку, он работает только для файлов csv:
copy training from 'C:/testCSV.csv' DELIMITER ',' csv header;
когда я пытаюсь запустить код выше в моем txt файле, он получает сообщение об ошибке:
copy training from 'C:/testTXTFile.txt' DELIMITER ',' csv header
ERROR: unquoted newline found in data
HINT: Use quoted CSV field to represent newline.
Я попытался добавить атрибуты "quote" и "escape", но команда просто не работает для txt файла:
copy training from 'C:/testTXTFile.txt' DELIMITER ',' csv header quote as E'"' escape as E'\\N';
ERROR: COPY escape must be a single one-byte character
В качестве альтернативы, я думал о запуске java или создании отдельной таблицы разбивки, чтобы удалить первую строку... но эти решения являются обширными и трудоемкими. Мне нужно будет загрузить 9gb данных, чтобы удалить первую строку заголовков... есть ли там другие решения, чтобы удалить первую строку файла txt, чтобы я мог загружать данные в мою базу данных postgres?