Выбор столбца BLOB из базы данных Oracle в базу данных SQL Server через связанный сервер - PullRequest
1 голос
/ 17 февраля 2011

Как выбрать столбец 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 ]

1 голос
/ 17 февраля 2011

Можете ли вы сменить поставщика OLE DB, который вы используете для подключения к Oracle? Поставщик Microsoft OLE DB для Oracle не поддерживает типы данных BLOB. Oracle OLE DB Provider делает. Если вы измените подключение к Oracle для использования поставщика Oracle, оно должно работать.

0 голосов
/ 17 февраля 2011

Это работает:

SELECT * FROM OPENQUERY(LINKED_SERVER_NAME , 
'Select DBMS_LOB.SUBSTR(blobColumn,4000,1) from TABLE') AS derivedtbl_1

Возвращает только первые 4000 символов столбцов BLOB-объектов и работает только для столбцов, имеющих текстовые (не двоичные) данные.Но это работает для меня.

...