Ошибка при использовании команды копирования в Postgres (ОШИБКА: неверный синтаксис ввода для типа даты: "") - PullRequest
9 голосов
/ 18 мая 2011

У меня есть файл CSV, из которого я пытаюсь использовать команду Postgres COPY для заполнения таблицы из этого файла CSV. Один из столбцов таблицы NEXT_VISIT имеет тип данных date_. Некоторые из соответствующих полей в CSV-файле, которые должны входить в этот столбец даты, имеют нулевые значения.

Команда копирования выполняется так:

COPY "VISIT_STAGING_TABLE" from E'C:\\Users\\Sir Codealot\\Desktop\\rufijihdss-2007-2010\\rufijihdss\\VISIT_TEST.CSV' CSV HEADER 

Когда я запускаю эту команду, я получаю ошибку:

ERROR:  invalid input syntax for type date: ""
CONTEXT:  COPY VISIT_STAGING_TABLE, line 2, column NEXT_VISIT: ""

********** Error **********
ERROR: invalid input syntax for type date: ""
SQL state: 22007
Context: COPY VISIT_STAGING_TABLE, line 2, column NEXT_VISIT: ""

Как я могу запустить команду копирования и заставить Postgres принять, что некоторые поля в CSV-файле, соответствующие NEXT_VISIT, имеют значения ""?

Ответы [ 2 ]

12 голосов
/ 18 мая 2011

Добавьте WITH NULL AS '' к вашей команде ( COPY ожидает, что значения NULL будут представлены как "\ N" (обратная косая черта-N) по умолчанию ).

COPY "VISIT_STAGING_TABLE" from E'C:\\Users\\Sir Codealot\\Desktop\\rufijihdss-2007-2010\\rufijihdss\\VISIT_TEST.CSV' WITH CSV HEADER NULL AS ''

Подробнее здесь: postgresql COPY

5 голосов
/ 26 марта 2014

У меня была точно такая же проблема, и для меня она решила использовать утверждение WITH NULL ''.Важно не иметь пробела между апострофами .

Первоначально я использовал оператор WITH NULL ' ' и получил то же сообщение об ошибке, что и вы (ОШИБКА: синтаксическая ошибка в или около "WITH NULL").

Но когда я исключил пробелАпострофы это сработало.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...