0

我正在使用它来将数据读入我在 Postgres 9.2 中创建的表中:

COPY tagdata FROM 'C:/Filter112595/QF112595_3.csv' WITH DELIMITER ',' 
    CSV HEADER FORCE_NOT_NULL;

数据类型realintegerdate

我收到此错误:

ERROR:  invalid input syntax for type real: "NULL"
CONTEXT:  COPY tagdata, line 2, column residual: "NULL"

在使用之前FORCE_NOT_NULL,我有NULLas '' 但由于数据类型不同而更改了它。

有人可以解释发生了什么吗?

4

1 回答 1

2

你告诉 PostgreSQL 没有列是空的,所以NULL列中必须表示一个数字。由于NULL不是有效的浮点数,因此您会收到错误消息。

您还没有真正提供正确帮助您所需的信息,但我的猜测是您FORCE_NOT_NULL只需要为列的子集指定。请参阅以下的语法copy

    FORCE_NOT_NULL ( column_name [, ...] ) |

在这样的问题中,您确实应该提供几行 CSV,以便我们可以看到真正发生的事情,以及何时做出如下陈述:

在使用 FORCE_NOT_NULL 之前,我将 NULL 作为 '' 但由于数据类型不同而更改了它。

你需要解释一下——什么“不同的数据类型”,你为什么需要改变它,你认为你正在解决什么问题,链接到任何以前相关的 SO 问题等。

于 2013-09-01T21:44:06.413 回答