Ошибка выполнения ODBC INSERT INTO после обновления с 9.1E до 10.2B

У меня есть несколько sql-скриптов для перемещения данных с нашего SQL Server в поле Progress. Но он перестал работать.

Это работало в 9.1E, но перестало работать после обновления до 10.2B.

INSERT INTO OPENQUERY(linkedserver, 'select building, unit, "unit-desc", "address" from pub."rm-unit"') 
SELECT  DISTINCT
        UPPER(ProjectCode + BuildingCode) AS building, 
        UPPER(UnitCode) as unit, 
        UPPER(UnitNumber) AS [unit-desc]
        UPPER(AddressLine) as [address]
FROM    RawUnit
WHERE   ProjectCode in ('VM')
ORDER BY building, unit

Сообщение об ошибке после обновления поставщика OLE DB «MSDASQL» для связанного сервера «linkedserver» вернуло сообщение «Многоэтапная операция OLE DB вызвала ошибки. Проверьте каждое значение состояния OLE DB, если оно доступно. Работа не выполнена». Сообщение 7344, уровень 16, состояние 1, строка 1 Поставщик OLE DB «MSDASQL» для связанного сервера «linkedserver» не может ВСТАВИТЬ В таблицу «[MSDASQL]» из-за столбца «unit-desc». У пользователя нет разрешения на пиши в колонку.

Чтобы заставить его работать, я удаляю столбец с дефисом.

INSERT INTO OPENQUERY(linkedserver, 'select building, unit, "address" from pub."rm-unit"')  
SELECT  DISTINCT
        UPPER(ProjectCode + BuildingCode) AS building, 
        UPPER(UnitCode) as unit, 
        UPPER(AddressLine) as [address]
FROM    RawUnit
WHERE   ProjectCode in ('VM')
ORDER BY building, unit

Кто-нибудь знает, как заставить это работать?


person smiggleworth    schedule 03.10.2011    source источник


Ответы (1)


Вы используете драйверы ODBC MSDASQL для подключения к Progress, но вам нужен драйвер ODBC DataDirect OpenEdge 10.2B. Вы используете КАД? Если это так, свяжитесь с QAD, и они смогут получить установщик только для драйверов ODBC от Progress. Если нет, свяжитесь с Progress напрямую. В зависимости от ваших контрактов либо с поставщиком, либо с Progress, вы можете брать или не платить за драйверы.

person HardCode    schedule 03.10.2011