Проблема с командой 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 и т. д.

Другие вопросы по тегам