2015-03-12 4 views
0
select * from 
OPENROWSET('IBMDADB2' 
,'DSN=MY_DSN;UID=MY_UID;pwd=MY_PWD;' 
,'select * from MY_TABLE') 

Когда я запускаю это в SQL Server Management Studio, я получаю сообщение об ошибке:OpenRowset между DB2 (32bit) и SQL Server (64-бит)

No se puede crear una instancia del proveedor OLE DB "IBMDADB2" para el servidor vinculado "(null)".

Это работает нормально, когда оба дБ двигатели 32bit , но дело в том, Я не могу обновить один или другой вариант, потому что это производственные базы данных. Есть ли пакет fixpack или sp, который я могу запустить, чтобы сделать эту работу?

Запуск выберите @@ версии:

Microsoft SQL Server 2008 (SP1) - 10.0.2531.0 (X64) 
Mar 29 2009 10:11:52 Copyright (c) 1988-2008 
Microsoft Corporation Express Edition (64-bit) 
on Windows NT 6.2 <X64> (Build 9200:) 

и DB2 9.7

+0

Вы можете перевести сообщение об ошибке на английский? Не все здесь понимают испанский ... –

+0

Посмотрите, помогает ли это [IBM TechNote] (http://www-01.ibm.com/support/docview.wss?uid=swg21219288). Вам необходимо правильно зарегистрировать поставщика DB2. – mustaccio

ответ

0

Один из обходных путей:
- вы можете установить дополнительный экземпляр 32-битного SQL (например, SQLExpress) для работы с OPENROWSET
- вставить OPENROWSET в хранимую процедуру на простой базе данных
- затем на этапе производства x64 SQL вы можете создать linked se rver - 32-битный экземпляр SQL.
- использовать связанный сервер для доступа к базе данных и хранимой процедуре с помощью OPENROWSET

Смежные вопросы