我正在使用它将数据读入我在Postgres 9.2中创建的表中:
COPY tagdata FROM 'C:/Filter112595/QF112595_3.csv' WITH DELIMITER ','
CSV HEADER FORCE_NOT_NULL;
数据类型为real
,integer
和date
。
我收到此错误:
ERROR: invalid input syntax for type real: "NULL" CONTEXT: COPY tagdata, line 2, column residual: "NULL"
在使用FORCE_NOT_NULL
之前,我有NULL
作为'',但由于数据类型不同而改变了它。
有人可以解释发生了什么吗?
答案 0 :(得分:2)
你告诉PostgreSQL没有列是空的,所以列中的NULL
必须表示一个数字。由于NULL
不是有效的浮点数,因此会出错。
您还没有真正提供正确帮助您所需的信息,但我猜您需要仅为列的子集指定FORCE_NOT_NULL
。请参阅copy
的语法:
FORCE_NOT_NULL ( column_name [, ...] ) |
在这样的问题中你真的应该提供几行CSV,这样我们才能看到真正发生的事情,以及何时发表如下声明:
在使用FORCE_NOT_NULL之前,我将NULL设为'',但由于数据类型不同而改变了它。
你需要解释 - 什么“不同的数据类型”,为什么你需要改变它,你认为你正在解决什么问题,链接到任何以前相关的SO问题等。