CORRECÇÃO: O fornecedor Microsoft OLE DB para DB2 falhar quando uma constante de cadeia numa consulta contém um '?' literal e utilizar SSIS num ambiente do Host Integration Server 2010

Aplica-se a: Microsoft Host Integration Server 2010

Sintomas


Tentar executar uma instrução de SQL complexa num ambiente Microsoft Host Integration Server 2010. Quando a instrução SQL contém um ponto de interrogação ('? ') literal, fornecedor Microsoft OLE DB para DB2 poderá falhar. Por exemplo, pode cria um novo pacote do Microsoft SQL Server Integration Service (SSIS) e inserir um pacote de fluxo de dados. Criar uma origem de OLE DB e inserir uma instrução de SQL que contém um '?' literal como no exemplo seguinte:
SELECT NDECRE || '?'FROM TIGS981FETCH FIRST 10 ROWS ONLY
Neste cenário, quando fechar a caixa de diálogo, é apresentada uma marca vermelha. Além disso, no painel de erros, recebe a seguinte mensagem de erro:
Erro de validação. Tarefa de fluxo de dados: O comando SQL requer parâmetros 1, mas o mapeamento de parâmetros tem apenas 0 parâmetros.

Causa


Este problema ocorre porque o fornecedor interpreta erradamente a '?' literal como um parâmetro em vez de como uma cadeia.

Resolução


A correcção que resolve este problema está incluído no cumulativa pacote de actualizações 1 para o Host Integration Server 2010.For mais informações sobre como obter o pacote de actualização cumulativa, clique no número de artigo seguinte para visualizar o artigo na Knowledge da Microsoft Base:
2533330 Pacote de actualização cumulativa 1 para o Host Integration Server 2010

Estado


A Microsoft confirmou que este problema ocorre nos produtos da Microsoft listados na secção "Aplica-se a".