PostgreSQL - как использовать команду копирования (импорт текстового файла), когда строка заканчивается разделителем - PullRequest
0 голосов
/ 06 мая 2018

Я пытаюсь импортировать несколько больших файлов в базу данных PostgreSQL, файлы имеют данные в следующем формате, значения разделены разделителем |. Но проблема возникает при импорте с использованием оператора копирования, выдающего ошибку

ОШИБКА: дополнительные данные после последнего ожидаемого столбца

После некоторого тестирования я обнаружил, что причиной проблемы является последний символ в строке, каждая строка заканчивается разделителем. Я нашел обходной путь, то есть замену каждого символа перед символом перевода строки. Я ищу оператор COPY, который прекрасно работает, игнорируя последний символ

8712678|MC|AMC355911||||355911|||AZ|AZ|2002|484|0|0|||C|CLOSED|CLOSED|239|DECLARED NULL & VOID|2002-01-31 00:00:00|2006-07-28 12:11:55|384101|LODE CLAIM|||2005-10-19 00:00:00|STELLAR METALS SM #2|01 05-10-1872;017STAT0091;30USC26,28,34|AMC355910|200103806|2001-09-07 00:00:00||||38||Y||||2011-07-19 12:55:52|

1 Ответ

0 голосов
/ 06 мая 2018

такого нет COPY. Вам нужно использовать обходной путь, либо тот, который вы уже используете что-то вроде sed 's/|$//g', либо просто alter table blah add column dummy до конца таблицы, поэтому COPY будет заполнять его нулями вместо ошибки

...