Получить вместе с сервером изображений связанных SQL Server из PostgreSQL
При получении изображения с привязанными серверами sql-сервера из PostgreSQL я получаю следующую ошибку: поставщик OLE DB 'MSDASQL' для связанного сервера 'bd_acceso_ruisegip' вернул данные, которые не соответствуют ожидаемой длине данных для столбца '[MSDASQL] . fot_imagen '. Ожидаемая длина данных (максимальная) составляет 255, а возвращаемых данных - 38471.
2 ответа
Я обнаружил аналогичную проблему при репликации некоторых данных форума из PostgreSQL в MSSQL, используя 64-битный драйвер PostgreSQL и связанный сервер (.
Когда я закодировал это так:
select * into Post from OpenQuery(PostgreSQL_Test1, 'select * From public.post')
... таблица MSSQL по умолчанию имеет размер столбца nvarchar(4000).
Мое исправление: во-первых, запустите его один раз с небольшим ограничением на количество скопированных строк:
select * into Post from OpenQuery(PostgreSQL_Test1, 'select * From public.post limit 10')
Затем щелкните правой кнопкой мыши по локальной таблице сообщений. Выберите "Таблица сценариев как перетаскивание и создание". В сценарии создания замените размер ошибочного столбца на VARCHAR(MAX).
Далее создайте таблицу. Тогда используйте:
Insert Post select * from OpenQuery(PostgreSQL_Test1, 'select * From public.post')
Надеюсь, это поможет. Ваш пробег может отличаться.
Не знаю, имели ли вы дело с колонкой bytea, но у меня была такая же проблема. Нашел ответ в настройке системы postrgres ODBC dsn. Под страницей Options/Datasource-page 2 есть опция для bytea как LO. Кликнул, и теперь он работает как чемпион.