I have CSV files, tab-separated, fields not wrapped in quotes, where field data can contain characters like single quotes, double quotes, pipes and backslashes.
Sample data can look like this:
1 2 "ba$aReR 18
I want to import this data into Postgres using the COPY statement.
When I try to import this using
COPY <tablename> FROM <filename> NULL AS '';
I get an error psql:-:1: ERROR: missing data for column
because Postgres is treating the backslash + tab as an "escaped tab" instead of a backslash followed by the field separator.
So I switched to using the "CSV format" of the COPY operator, like so:
COPY <tablename> FROM <filename> WITH CSV DELIMITER E'' NULL AS '';
Now there's a new error psql:-:1: ERROR: value too long for type character varying(254)
Apparently because it's interpreting the double-quote at the start of field 3 as the field wrapping character.
How can I specify that my data is NOT quoted at all?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…