|
Загрузка данных командой COPY
|
|||
---|---|---|---|
#18+
Гружу данные в базу 10.5 командой COPY copy od_wiring ID,PLAN_ID,WIRDATE,NAME,COMMENT,D_REST,K_REST,EQ_,O_STEP,CHANGED_BY,IS_PLAN,BLANKS,DOL,LINK,TAG,D_SUMMA,K_SUMMA,D_AMOUNT,K_AMOUNT) from '/var/lib/pgsql/10/backups/1/OD_WIRING.sql' DELIMITER '|' CSV ENCODING 'WIN1251'; Вываливается на строке 235508 с диагностикой COPY od_wiring, line 235508, column comment: "Уведомление СД 585 от 18.05.05, п/п №107 и 109 (налог)|123425|200255|200000..." Что ей не нравится? Вот часть файла, строка начинается с 2513837, третья по счету: 2513835|128|18.05.2005 11:58:16|Начисление сумм по выкупу паев|Уведомление СД "585 от 18.05.05, п/п №107 и 109 (налог)|123425|200255|200000|271036|55|Fх..во200000|200000|199.59084|199.59084 2513836|128|18.05.2005 11:58:16|Учет положительной разницы между ценой реализации и приобретения|Уведомление СД "585 от 18.05.05, п/п №107 и 109 (налог)|123439|200255|17378.38|271036|55|Fх..во17378.38|17378.38|0|0 2513837|128|18.05.2005 11:58:16|Начисление скидки|Уведомление СД "585 от 18.05.05, п/п №107 и 109 (налог)|200255|170602|0|271036|55|Fх..во0|0|0|0 2513838|129|18.05.2005 11:58:16|Снятие паев с учета|Погашение (выкуп) паев|124777|124776|0|271036|55|Fх..во199.59084|199.59084|0|0 2513839|128|18.05.2005 11:58:16|Задолженность по ДС от фонда|Погашение (выкуп) паев|200256|200257|217378.38|271036|55|Fх..во217378.38|217378.38|0|0 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2018, 12:41 |
|
Загрузка данных командой COPY
|
|||
---|---|---|---|
#18+
alex342, Вы не привели текст ошибки. Поэтому ничего сказать нельзя. То что вы привели - расширенная информация о том где ошибка произошла но не о том в чем она состоит. -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2018, 13:31 |
|
Загрузка данных командой COPY
|
|||
---|---|---|---|
#18+
alex342COPY od_wiring, line 235508, column comment: "Уведомление СД 585 от 18.05.05, п/п №107 и 109 (налог)|123425|200255|200000..." Что ей не нравится? Обычно оно пишет чуть больше, напр., missing data for column xxx. М.б. стоит проверить на предмет непарных кавычек и т.п. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2018, 13:36 |
|
Загрузка данных командой COPY
|
|||
---|---|---|---|
#18+
Все, что он сказал. в логе еще меньше. (Это я разделитель сменил с | на ~) Если удаляю эту строку, копирование идет дальше. postgres=# copy od_wiring (ID,PLAN_ID,WIRDATE,NAME,COMMENT,D_REST,K_REST,EQ_,O_STEP,CHANGED_BY,IS_PLAN,BLANKS,DOL,LINK,TAG,D_SUMMA,K_SUMMA,D_AMOUNT,K_AMOUNT) from '/var/lib/pgsql/10/backups/1/OD_WIRING.sql' DELIMITER '~' CSV ENCODING 'WIN1251'; ERROR: value too long for type character varying(255) КОНТЕКСТ: COPY od_wiring, line 235508, column comment: "Уведомление СД 585 от 18.05.05, п/п №107 и 109 (налог)~123425~200255~200000..." postgres=# А кавычки есть и в предыдущих строках - их ест. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2018, 14:24 |
|
Загрузка данных командой COPY
|
|||
---|---|---|---|
#18+
Почитайте внимательно: alex342Все, что он сказал. в логе еще меньше. (Это я разделитель сменил с | на ~) Если удаляю эту строку, копирование идет дальше. postgres=# copy od_wiring (ID,PLAN_ID,WIRDATE,NAME,COMMENT,D_REST,K_REST,EQ_,O_STEP,CHANGED_BY,IS_PLAN,BLANKS,DOL,LINK,TAG,D_SUMMA,K_SUMMA,D_AMOUNT,K_AMOUNT) from '/var/lib/pgsql/10/backups/1/OD_WIRING.sql' DELIMITER '~' CSV ENCODING 'WIN1251'; ERROR: value too long for type character varying(255) КОНТЕКСТ: COPY od_wiring, line 235508, column comment: "Уведомление СД 585 от 18.05.05, п/п №107 и 109 (налог)~123425~200255~200000..." postgres=# А кавычки есть и в предыдущих строках - их ест. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2018, 14:35 |
|
Загрузка данных командой COPY
|
|||
---|---|---|---|
#18+
В этой строке для поля COMMENT от разделителя до разделителя 65 символов. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2018, 14:38 |
|
Загрузка данных командой COPY
|
|||
---|---|---|---|
#18+
COPY хватает все между парами кавычек ", начиная с предыдущей строки!!! Как мне импортировать текст с кавычками? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2018, 15:14 |
|
Загрузка данных командой COPY
|
|||
---|---|---|---|
#18+
alex342В этой строке для поля COMMENT от разделителя до разделителя 65 символов. В общем проблема у вас в входном файле и в его формате. Что именно там не так - без hex dump посимвольного этой строки (и нормальных строк рядом) не понять. -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2018, 15:18 |
|
Загрузка данных командой COPY
|
|||
---|---|---|---|
#18+
Maxim Boguk, IMHO просто файл НЕ CSV. Почему в команде COPY указали/используют формат CSV, а не просто TEXT - мне не очень понятно. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2018, 15:23 |
|
Загрузка данных командой COPY
|
|||
---|---|---|---|
#18+
alex342COPY хватает все между парами кавычек ", начиная с предыдущей строки!!! Как мне импортировать текст с кавычками? даблквот от значащих кавыков при формировании файла. или параметр quote в значение не встречающееся в текстах https://www.postgresql.org/docs/10/static/sql-copy.html ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2018, 15:27 |
|
Загрузка данных командой COPY
|
|||
---|---|---|---|
#18+
Я уже все HEX просмотрел. А когда удалил эту строку и все импортировалось, увидел, что в поле COMMENT влетело все от кавычки во второй строке "585... и до конца строки. Дело в кавычках! Так подскажите, как с ними быть? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2018, 15:29 |
|
Загрузка данных командой COPY
|
|||
---|---|---|---|
#18+
Если я задваиваю кавычки, они вообще не появляются в тексте - СД 585. Без кавычки перед цифрами 585. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2018, 15:34 |
|
Загрузка данных командой COPY
|
|||
---|---|---|---|
#18+
alex342Если я задваиваю кавычки, они вообще не появляются в тексте - СД 585. Без кавычки перед цифрами 585. А просто гугл и поискать - религия не позволяет? Правильный ответ был "Почему в команде COPY указали/используют формат CSV, а не просто TEXT - мне не очень понятно. " Он же за 2 минуты гуглом например по ссылке находится https://stackoverflow.com/questions/20402696/is-it-possible-to-turn-off-quote-processing-in-the-postgres-copy-command-with-cs (2й ответ). Вы сами себе в ногу стреляете указывая CSV где все очень непросто с quoting (да еще и стандарта внятного нет) -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2018, 15:42 |
|
Загрузка данных командой COPY
|
|||
---|---|---|---|
#18+
alex342Если я задваиваю кавычки, они вообще не появляются в тексте - СД 585. Без кавычки перед цифрами 585.строковое поле Должно быть закавычено (экранирующими кавыками) . значимые кавыки должны быть задвоены (внутри целиком закавыченного поля). или используйте КВОТЕ '^' для теста ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2018, 15:42 |
|
Загрузка данных командой COPY
|
|||
---|---|---|---|
#18+
alex342Я уже все HEX просмотрел. А когда удалил эту строку и все импортировалось, увидел, что в поле COMMENT влетело все от кавычки во второй строке "585... и до конца строки. Дело в кавычках! Так подскажите, как с ними быть? Вставьте одну строчку руками через INSERT с кавычками в нужных местах. А затем командой COPY tbl TO stdout посмотрите что должно быть на входе. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2018, 15:46 |
|
|
start [/forum/topic.php?fid=53&msg=39698564&tid=1995605]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
37ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
others: | 277ms |
total: | 397ms |
0 / 0 |