Я хочу получить доступ к данным в базе данных Oracle 11g из SQL-Server 2008
Я установил связанный сервер, и когда я выполняю
select * from [Link_server_name]..Oracle_schema.Oracle_table
Oracle_table содержит столбцы Number и varchar2, все работает как исключение.
Но когда Oracle_table содержит столбец CLOB, я получаю следующую ошибку:
Der OLE DB-Anbieter 'MSDAORA' für den Verbindungsserver 'L_V407SR8T' hat die Meldung 'Неуказанная ошибка' zurückgeben.
Der OLE DB-Anbieter 'MSDAORA' для Verbindungsserver 'L_V407SR8T' hat die Meldung 'Произошла ошибка Oracle, но не удалось получить сообщение об ошибке из Oracle.' zurückgeben.
Der OLE DB-Anbieter 'MSDAORA' для Verbindungsserver 'L_V407SR8T' hat die Meldung 'Тип данных не поддерживается.' zurückgeben.
Сообщение 7306, уровень 16, состояние 2, строка 1
Die '"MCCAPP". "DOGGRUPPEN"' - Tabelle vom OLE DB-Anbieter 'MSDAORA' für den Verbindungsserver 'L_V407SR8T' kann nicht geöffnet werden.
Использование OPENQUERY
SELECT * FROM OPENQUERY([L_V407SR8T], 'Select CLOB_COLUMN from Oracle_table' )
я получил
Der OLE DB-Anbieter 'MSDAORA' для Verbindungsserver 'L_V407SR8T' hat die Meldung 'Произошла ошибка Oracle, но не удалось получить сообщение об ошибке из Oracle.' zurückgeben. Der OLE DB-Anbieter 'MSDAORA' для Verbindungsserver 'L_V407SR8T' hat die Meldung 'Тип данных не поддерживается.' zurückgeben.
Пожалуйста, извините немецкие сообщения об ошибках.
Мой вопрос: есть ли способ прочитать столбцы CLOB через связанные серверы?
РЕДАКТИРОВАТЬ:
- Мастер импорта и экспорта SQL Server, похоже, тоже зависит от OLE DB и сосет в тех же таблицах
- Я спрашиваю себя, зависит ли проблема от использования наборов символов, но я не могу их изменить
- В качестве практического решения я использую некоторые скрипты PowerShell для получения данных, но
источник
Ответы:
Загрузите и установите клиент базы данных Oracle 11 на свой компьютер с SQL Server 2008.
Настройте связанный сервер с помощью поставщика Oracle OLE DB (OraOLEDB.Oracle).
Убедитесь, что «Разрешить InProcess» включен в настройках провайдера.
Клиент Oracle 11 OLE DB поддерживает CLOB.
источник
Комментарий к ответу ТАК вопрос Как читать столбец CLOB в Oracle с помощью OleDb?
содержит ссылку на старый пост службы поддержки Microsoft со следующим утверждением
Было бы неплохо найти еще несколько текущих ссылок.
Я провел некоторые исследования Google и нашел только обходные пути. Я боюсь, что тип данных по-прежнему не поддерживается.
Изменить 05/05/2011
Я действительно не понимаю, почему Microsoft не может решить эту проблему. Следующий скрипт PowerShell использует OLE-DB для чтения таблицы, содержащей столбец CLOB, из базы данных Oracle и вставки данных в существующую аналогичную таблицу на Sql-Server с использованием bulkCopy, что является очень эффективным способом.
Настройте следующие строки подключения, запрос и имя таблицы для вашей установки:
Следующий код копирует таблицу оракула в таблицу sql-сервера
КСТАТИ: код основан на проекте Codeplex Чеда Миллера.
В настоящее время использование PowerShell - это единственный известный мне способ копирования данных с CLOB из Oracle на Sql-Server без использования C # или каких-либо сторонних инструментов.
Мне не удалось использовать ни мастера импорта / экспорта, ни связанных серверов.
источник
No new updates are planned for future releases of these components including their support against versions later than Oracle 8i.