Проблема с командой COPY
Я использую это для чтения данных в таблицу, которую я создал в 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
как '', но изменил его из-за различных типов данных.
Может кто-нибудь объяснить, что происходит?
1 ответ
Вы сказали PostgreSQL, что ни один столбец не является нулевым, поэтому NULL
в столбце должно быть указано число. поскольку NULL
неверное число с плавающей запятой, вы получаете ошибку.
Вы на самом деле не предоставили информацию, необходимую, чтобы помочь вам должным образом, но я думаю, что вам нужно указать FORCE_NOT_NULL
только для подмножества столбцов. Смотрите синтаксис для copy
:
FORCE_NOT_NULL ( column_name [, ...] ) |
В таких вопросах вы действительно должны предоставить пару строк CSV, чтобы мы могли видеть, что на самом деле происходит, и когда вы делаете заявления вроде:
Перед использованием FORCE_NOT_NULL у меня было NULL как '', но я изменил его из-за разных типов данных.
вам нужно объяснить, что - что за "разные типы данных", почему вам нужно их изменить, какую проблему вы решили решить, ссылки на любые предыдущие связанные вопросы SO и т. д.