powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Ошибка pg_atoi: zero-length string при copy из csv
9 сообщений из 9, страница 1 из 1
Ошибка pg_atoi: zero-length string при copy из csv
    #32681421
mwolf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет всем.
Из консоли пишу
Код: plaintext
\copy temp_locations from '/var/lib/pgsql/csv/GeoIPCity-134-Location.csv' using delimiters ','

отгребаю
Код: plaintext
1.
2.
3.
\.
ERROR:  copy: line  1 , pg_atoi: zero-length string
lost synchronization with server, resetting connection

сам файл такой
Код: plaintext
1.
2.
3.
4.
 1 ,"O1","","","", 0 . 0000 , 0 . 0000 ,,
 2 ,"AP","","","", 35 . 0000 , 105 . 0000 ,,
 3 ,"EU","","","", 47 . 0000 , 8 . 0000 ,,
....

таблица
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
CREATE TABLE public.temp_locations
(
  loc_id int8 NOT NULL,
  country varchar( 5 ),
  region varchar( 5 ),
  city varchar( 50 ),
  zip_code varchar( 5 ),
  latitude float4,
  longitude float4,
  dma_code int4,
  area_code int4,
  CONSTRAINT pk_temp_locations PRIMARY KEY (loc_id)
) WITHOUT OIDS;

Как его загрузить?
...
Рейтинг: 0 / 0
Ошибка pg_atoi: zero-length string при copy из csv
    #32681470
wbear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
заменять все ,"", на ,, пробовал?
pg не умеет '' (также как и 'NULL') преврящать в NULL::int
...
Рейтинг: 0 / 0
Ошибка pg_atoi: zero-length string при copy из csv
    #32681487
mwolf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wbearзаменять все ,"", на ,, пробовал?
pg не умеет '' (также как и 'NULL') преврящать в NULL::int
Да пробовал, буть оно не ладно
Код: plaintext
1.
2.
 1 ,"O1",,,, 0 . 0000 , 0 . 0000 ,,
 2 ,"AP",,,, 35 . 0000 , 105 . 0000 ,,
 3 ,"EU",,,, 47 . 0000 , 8 . 0000 ,,
то же самое ((
...
Рейтинг: 0 / 0
Ошибка pg_atoi: zero-length string при copy из csv
    #32681518
mwolf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Момент!!!
Что там насчёт NULL в int?
Поподробнее об этом месте можно?
Что за проблема и как с ней бороться?
...
Рейтинг: 0 / 0
Ошибка pg_atoi: zero-length string при copy из csv
    #32684611
LeXa NalBat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"pg_atoi: zero-length string" - не шмогла сконвертировать пустую строку в число

решение - в файл записывать \N; или в файл записывать 0; или copy ... with null as ''

авторМомент!!!
Что там насчёт NULL в int?
Поподробнее об этом месте можно?
Что за проблема и как с ней бороться?Ничего об этом не слышал. Тоже хотел бы узнать, если это действительно имеет место.
...
Рейтинг: 0 / 0
Ошибка pg_atoi: zero-length string при copy из csv
    #32685005
mwolf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да. Проблема как раз, похоже, и заключалась в том, что пустая строка на конвертилась в NULL на целых полях. Я переделал таблицу и все целые поля втянул как строковые - там NULL-ы прошли нормально. А потом переконвертировал строки в числа, мне всё равно эту таблицу надо было растаскивать в несколько других.
Надо будет поэксперементировать с " copy ... with null as '' ".
...
Рейтинг: 0 / 0
Ошибка pg_atoi: zero-length string при copy из csv
    #32685038
LeXa NalBat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторПроблема как раз, похоже, и заключалась в том, что пустая строка на конвертилась в NULL на целых полях.

Вроде бы в постгресе до версии 7.3 пустая строка конвертилась в 0, а не в NULL.

Вот выдержка из release notes 7.3: An empty string ('') is no longer allowed as the input into an integer field. Formerly, it was silently interpreted as 0.
...
Рейтинг: 0 / 0
Ошибка pg_atoi: zero-length string при copy из csv
    #32685239
mwolf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LeXa NalBat
Вроде бы в постгресе до версии 7.3 пустая строка конвертилась в 0, а не в NULL.
Вот выдержка из release notes 7.3: An empty string ('') is no longer allowed as the input into an integer field. Formerly, it was silently interpreted as 0.

Вот тут есть один момент. Вот моя строка:
1,"O1","","","",0.0000,0.0000,,
последние 2 поля это целые поля. При таком раскладе вылазит ошибка. Чтоб туда попал 0, я так понял строка должна быть такой:
1,"O1","","","",0.0000,0.0000,"",""
...
Рейтинг: 0 / 0
Ошибка pg_atoi: zero-length string при copy из csv
    #32685653
LeXa NalBat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторпоследние 2 поля это целые поля. Чтоб туда попал 0, я так понял строка должна быть такой:
1,"O1","","","",0.0000,0.0000,"",""

Вроде бы нет. Такой: 1,"O1","","","",0.0000,0.0000,0,0
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Ошибка pg_atoi: zero-length string при copy из csv
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]