postgresql csv copy unquoted newline found in data

18.7k views Asked by At

I have some csv data in excel, and I'm importing it into postgresql. I'm opening the excel csv file with a notepad editor (have tried notepad, wordpad and notepad++) and am then copying/pasting into a remote desktop connection to a linux machine. Then I'm using this import statement from within the database: COPY ltg_data FROM '/home/keene/ltg_db/ltg_outbreak_jun9_15.csv' (FORMAT CSV, HEADER);

I get this error: ERROR: unquoted newline found in data HINT: Use quoted CSV field to represent newline. CONTEXT: COPY ltg_data, line 175320

Here's the link to the csv file I'm using: http://greenandtheblue.com/ltg_outbreak_jun9_15.csv
I've researched the issue a lot and tried a lot of things and must be missing something fairly simple. Any help is very much appreciated.

3

There are 3 answers

1
Vikas Soni On

The answer is very simple.

  • Add a page break in your excel file where your data ends.

  • Select just next cell (empty cell) after your last data cell and go to

    File > Page Layout > Breaks > Insert Page Break.

  • Save your csv file and import it again with pgadmin.

3
thinkmassive On

The file you linked doesn't appear to have CR-LF line endings, however I suspect that could potentially be an issue since you're coming from a Windows host. You might try removing carriage returns using sed:

sed 's/\r//' ltg_outbreak_jun9_15.csv ltg_outbreak_jun9_15-noCR.csv

Then COPY FROM the resulting ...-noCR.csv file.

0
Anita W On

You can remove the carriage returns using sed as thinkmassive said, but to save the results into a new file on Linux you need:

touch ltg_outbreak_jun9_15-noCR.csv

sed 's/\r//' ltg_outbreak_jun9_15.csv > ltg_outbreak_jun9_15-noCR.csv