Выбор столбца BLOB из базы данных Oracle в базу данных SQL Server через связанный сервер
Как выбрать столбец BLOB-объектов из базы данных Oracle, используя OPENQUERY на сервере SQL, который использует связанный сервер для подключения к базе данных Oracle?
Когда я пытаюсь использовать этот синтаксис, я получаю сообщение об ошибке:
SELECT * FROM OPENQUERY(LINKED_SERVER_NAME ,
'Select blobColumn from TABLE') AS derivedtbl_1
Ошибки:
Поставщик OLE DB "MSDAORA" для связанного сервера "LINKED_SERVER_NAME" возвратил сообщение "Произошла ошибка Oracle, но не удалось получить сообщение об ошибке из Oracle". Поставщик OLE DB "MSDAORA" для связанного сервера "LINKED_SERVER_NAME" вернул сообщение "Тип данных не поддерживается".
2 ответа
Это работает:
SELECT * FROM OPENQUERY(LINKED_SERVER_NAME ,
'Select DBMS_LOB.SUBSTR(blobColumn,4000,1) from TABLE') AS derivedtbl_1
Это возвращает только первые 4000 символов столбцов BLOB-объектов и работает только для столбцов, которые имеют текстовые (не двоичные) данные. Но это работает для меня.
Можете ли вы изменить поставщика OLE DB, который вы используете для подключения к Oracle? Поставщик Microsoft OLE DB для Oracle не поддерживает типы данных BLOB. Oracle OLE DB Provider делает. Если вы измените соединение с Oracle для использования поставщика Oracle, оно должно работать.