#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, а не какую-либо другую? Это первое, что нужно проверить.