проблемы с обработкой строк с тремя или более ‘0’ с помощью pgloader

#postgresql #pgloader

#postgresql #pgloader

Вопрос:

Я загружаю большие csv-файлы в базу данных и хочу использовать pgloader, потому что он способен пропускать и регистрировать ошибочные записи. Однако я часто получаю

ERROR PostgreSQL Database error 22021: invalid byte sequence for encoding "UTF8": 0x00

Сначала я подумал, что это из-за 0x00 символов в моих данных. Я пробовал разные способы их удаления, но безрезультатно, пока не заметил, что некоторые переменные, например, временные метки с тремя или более 0 символами, похоже, вызывают проблему. например 17:46:30 0000 . Кто-нибудь знает, как справиться с этой проблемой без изменения моих данных? Примерно у 2/3 моих записей есть эта проблема. В идеале я ищу исправление, которое позволит мне импортировать данные, используя ту же процедуру.

Комментарии:

1. Это не символ «0». Ваша первая идея была правильной — в потоке данных есть байты с нулевым значением

2. Каков был бы хороший способ удалить эти @RichardHuxton? Попытка sed и tr тогда у меня не сработала

3. Вы уверены, что файл на самом деле имеет кодировку UTF-8, а не какую-либо другую? Это первое, что нужно проверить.