语法错误将CSV复制到Postgres

时间:2013-06-28 21:53:05

标签: postgresql csv header

非常新手PostgreSQL用户尝试将CS​​V文件导入Postgres数据库中的现有表。我在Windows 8上使用PgAdmin III。

以下是查询:

COPY "Mobility Survey2" FROM 'C:\\Users\\Public\\2011-2.csv'
WITH CSV HEADER DELIMITER ',';

以下是错误消息:

ERROR:  la sintaxis de entrada no es válida para integer: «1    25099   1020624     4   4   8           2   903 1   2   4   4   1                               1   3           0   2   2   16.6»

CONTEXT:  COPY Mobility Survey2, línea 2, columna ORDEN: «1 25099   1020624     4   4   8           2   903 1   2   4   4   1                               1   3           0   2   2   16.6»

(对不起西班牙语 - 翻译为“条目语法对整数无效”)

我已经尝试过查看其他一些问题,包括这个问题(Importing CSV file into PostgreSQL),但我找不到解决问题的方法。很可能只是因为我对Postgres和SQL一般都不熟悉,但我在查询中遗漏了什么?我认为它与标题有关,但我不知道如何解决它。

1 个答案:

答案 0 :(得分:1)

传递给COPY的分隔符是','但是查看有缺陷的行,其中没有逗号。看起来分隔符是tab字符。

尝试改为:

COPY "Mobility Survey2" FROM 'C:\\Users\\Public\\2011-2.csv'
WITH CSV HEADER DELIMITER E'\t';

对于HEADER关键字,如果数据文件的第一行由列名组成,则需要它,否则应将其删除。