bug в npgsql.dll ? При COPY возникает ошибка при чтении некоторых символов из файла источника.

Задействовал класс NpgsqlCopyIn, реализующий sql-команду COPY.
При наполнении таблиц возникает критическая ошибка при чтении символа ¤ (0xA4) в кодировке 866 источника.
Проблема возникает от того, что библиотека конвертирует входной файл в кодировку UTF8, и потом опять конвертирует в кодировку базы сервера, хотя можно было бы обойтись и без этого: логично приготовить файлы именно кодировке базы сервера.
также вызывает сбой чтение 0х00, ну и наверно других символов, которые не хотят переходить в UTF8.

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Насколько я понимаю, данная

Насколько я понимаю, данная библиотека относится не к PostgreSQL, а к фреймфорку .NET
Логичней задать этот вопрос разработчикам библиотеки.

Нет, данная библиотека входит в Postgres

в последний инсталляционный пакет. Написана на С#, следовательно наследование от Framework есть, поэтому в каком конкретно модуле зарыта -- это вопрос к разработчику именно npgsql. Порывшись в гугле обнаружил, что о проблеме известно давно и решения на сегодня нет, кроме как исключать из источника файла все символы, которые не могут быть преобразованы. Либо просить разработчиков npgsql написать критические участки кода в unsafe, если это вообще возможно.

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Back to top

(С) Виктор Вислобоков, 2008-2023