CORRECÇÃO: Mensagem de erro quando você executa uma instrução SQL usando OLE DB Provider for DB2: "SQLSTATE 22007, SQLCODE 181"

Traduções deste artigo Traduções deste artigo
ID do artigo: 924599 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Neste artigo

Sintomas

Considere o cenário a seguir. Executar uma instrução SQL usando o Microsoft OLE DB Provider for DB2. A instrução SQL passa um parâmetro de data/hora do Microsoft SQL Server a uma coluna de banco de dados IBM DB2. A Coluna do banco de dados IBM DB2 usa o tipo de dados IBM DB2 DATE. Nesse cenário, você receberá a seguinte mensagem de erro:
SQLSTATE: 22007, SQLCODE:-181
Por exemplo, a seguinte instrução SQL passa um parâmetro de data/hora do SQL Server a uma coluna de banco de dados IBM DB2.
declare @var1 datetime
set @var1 = '2006-09-27 00:00:00.000'
SELECT COL1, COL2, COL3
FROM IBMDB2.TESTDATA.USER1.TABLE1
WHERE COL2 = @var1
Neste exemplo, esse problema ocorre se a coluna COL2 usa o tipo de dado DATE do IBM DB2.

Causa

Em tempo de execução, o provedor OLE DB para DB2 não sabe o tipo de dados IBM DB2 correto para a coluna do banco de dados IBM DB2 para o qual o parâmetro de data/hora do SQL Server é passado. Portanto, o provedor OLE DB para DB2 inclui as informações de data e as informações de tempo no valor do provedor OLE DB para DB2 passa para o banco de dados IBM DB2. As informações de tempo não são válidas para o tipo de dado DATE do IBM DB2. Portanto, você receber a mensagem de erro mencionada na seção "Sintomas".

Resolução

Microsoft Host Integration Server 2006

Para resolver esse problema, obtenha o service pack mais recente para o Host Integration Server 2006. Para obter mais informações, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
979497Como obter o service pack mais recente para o Host Integration Server 2006

Microsoft Host Integration Server 2004

Um hotfix compatível foi disponibilizado pela Microsoft. No entanto, esse hotfix destina-se a corrigir o problema descrito neste artigo. Aplique-o somente aos sistemas que apresentarem esse problema específico. Este hotfix pode ser submetida a testes adicionais. Portanto, se esse problema não o prejudicar, recomendamos que você aguarde a próxima atualização de software que contém esse hotfix.

Se o hotfix está disponível para download, há uma seção "Download de Hotfix disponível" na parte superior deste artigo do Knowledge Base. Se esta seção não exibida, contate o suporte e atendimento ao cliente Microsoft para obter o hotfix.

Observação: Se ocorrem problemas adicionais ou se for necessária qualquer solução de problemas, talvez seja necessário criar uma solicitação de serviço separada. Os custos normais de suporte serão aplicados a questões de suporte adicionais e problemas que não se qualificam para esse hotfix específico. Para obter uma lista completa dos números de telefone de suporte e Atendimento Microsoft ou para criar uma solicitação de serviço separada, visite o seguinte site da Microsoft:
http://support.microsoft.com/contactus/?ws=support
Observação: O formulário "Download de Hotfix disponível" exibe os idiomas para os quais o hotfix está disponível. Se você não vir seu idioma, é porque não há um hotfix disponível disponível para esse idioma.

Informações do arquivo

A versão em inglês deste hotfix apresenta os atributos de arquivo (ou atributos de arquivo posteriores) listados na tabela a seguir. As datas e horas desses arquivos são listadas em UTC (hora coordenada universal COORDENADO). Quando você exibe as informações do arquivo, ele é convertido em hora local. Para encontrar a diferença entre o UTC e a hora local, use a guia fuso horário no item Data e hora no painel de controle.
Recolher esta tabelaExpandir esta tabela
Nome de arquivoVersão do arquivoTamanho do arquivoDataTempoPlataformaRequisito de SP
Db2oledb.dll6.0.2048.0488,96003 De novembro de 200617: 31x 86SP1
Db2oledb.hNão aplicável24,57903 De novembro de 200617: 36Não aplicávelSP1
Ddmstr.dll6.0.2048.044,03203 De novembro de 200617: 31x 86SP1
Drdaresync.exe6.0.2048.0337,40803 De novembro de 200617: 32x 86SP1
Microsoft.hostintegration.dataaccesslibrary.dll6.0.2048.086,01603 De novembro de 200617: 31x 86SP1
Microsoft.hostintegration.dataaccesstool.exe6.0.2048.02,703,36003 De novembro de 200617: 32x 86SP1
Microsoft.hostintegration.msdb2client.dll6.0.2048.0114,68803 De novembro de 200617: 31x 86SP1
Mseidb2c.dll6.0.2048.071,68003 De novembro de 200617: 31x 86SP1
Mseidb2d.dll6.0.2048.0435,20003 De novembro de 200617: 31x 86SP1
Mseidrda.dll6.0.2048.0695,80803 De novembro de 200617: 32x 86SP1
Observação: Devido às dependências do arquivo, o hotfix mais recente que contém esses arquivos também pode conter arquivos adicionais.

Microsoft OLE DB Provider for DB2 versão 1.0

Um hotfix compatível foi disponibilizado pela Microsoft. No entanto, esse hotfix destina-se a corrigir o problema descrito neste artigo. Aplique-o somente aos sistemas que apresentarem esse problema específico. Este hotfix pode ser submetida a testes adicionais. Portanto, se esse problema não o prejudicar, recomendamos que você aguarde a próxima atualização de software que contém esse hotfix.

Se o hotfix está disponível para download, há uma seção "Download de Hotfix disponível" na parte superior deste artigo do Knowledge Base. Se esta seção não exibida, contate o suporte e atendimento ao cliente Microsoft para obter o hotfix.

Observação: Se ocorrem problemas adicionais ou se for necessária qualquer solução de problemas, talvez seja necessário criar uma solicitação de serviço separada. Os custos normais de suporte serão aplicados a questões de suporte adicionais e problemas que não se qualificam para esse hotfix específico. Para obter uma lista completa dos números de telefone de suporte e Atendimento Microsoft ou para criar uma solicitação de serviço separada, visite o seguinte site da Microsoft:
http://support.microsoft.com/contactus/?ws=support
Observação: O formulário "Download de Hotfix disponível" exibe os idiomas para os quais o hotfix está disponível. Se você não vir seu idioma, é porque não há um hotfix disponível disponível para esse idioma.

Informações do arquivo

A versão em inglês deste hotfix apresenta os atributos de arquivo (ou atributos de arquivo posteriores) listados na tabela a seguir. As datas e horas desses arquivos são listadas em UTC (hora coordenada universal COORDENADO). Quando você exibe as informações do arquivo, ele é convertido em hora local. Para encontrar a diferença entre o UTC e a hora local, use a guia fuso horário no item Data e hora no painel de controle.
versão de 32 bits (x 86)
Recolher esta tabelaExpandir esta tabela
Nome de arquivoVersão do arquivoTamanho do arquivoDataTempoPlataformaRequisito de SP
Db2oledb.dll6.0.2048.0488,96003 De novembro de 200617: 31x 86SP1
Db2oledb.hNão aplicável24,57903 De novembro de 200617: 36Não aplicávelSP1
Ddmstr.dll6.0.2048.044,03203 De novembro de 200617: 31x 86SP1
Drdaresync.exe6.0.2048.0337,40803 De novembro de 200617: 32x 86SP1
Microsoft.hostintegration.dataaccesslibrary.dll6.0.2048.086,01603 De novembro de 200617: 31x 86SP1
Microsoft.hostintegration.dataaccesstool.exe6.0.2048.02,703,36003 De novembro de 200617: 32x 86SP1
Microsoft.hostintegration.msdb2client.dll6.0.2048.0114,68803 De novembro de 200617: 31x 86SP1
Mseidb2c.dll6.0.2048.071,68003 De novembro de 200617: 31x 86SP1
Mseidb2d.dll6.0.2048.0435,20003 De novembro de 200617: 31x 86SP1
Mseidrda.dll6.0.2048.0695,80803 De novembro de 200617: 32x 86SP1
versão de 64 bits (x 64)
Recolher esta tabelaExpandir esta tabela
Nome de arquivoVersão do arquivoTamanho do arquivoDataTempoPlataformaRamificação do serviço
Db2oledb.dll7.0.2535.0758,54407 De novembro de 200612: 34x 64Não aplicável
Microsoft.hostintegration.dataaccesslibrary.dll7.0.2535.02,550,61607 De novembro de 200612: 34x 64Não aplicável
Microsoft.hostintegration.dataaccesstool.exe7.0.2535.0613,20007 De novembro de 200612: 34x 64Não aplicável
Mseidrda.dll7.0.2535.01,355,53607 De novembro de 200612: 34x 64Não aplicável
Snanls.dll7.0.2535.0128,77607 De novembro de 200612: 34x 64Não aplicável
Db2oledb.dll7.0.2535.0516,88007 De novembro de 200612: 34x 86SYSWOW
Mseidrda.dll7.0.2535.0781,07207 De novembro de 200612: 34x 86SYSWOW
Snanls.dll7.0.2535.0105,22407 De novembro de 200612: 34x 86SYSWOW
Observação: Devido às dependências do arquivo, o hotfix mais recente que contém esses arquivos também pode conter arquivos adicionais.

Situação

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

Mais Informações

Esse hotfix adiciona suporte para uma nova propriedade de seqüência de caracteres de conexão. Usando a propriedade de cadeia de caracteres de conexão nova, você pode passar um parâmetro de data/hora do SQL Server a um banco de dados IBM DB2 como o tipo de dado DATE do IBM DB2. Provedor OLE DB para DB2 exclui as informações de tempo no valor do parâmetro de data/hora do SQL Server. Portanto, OLE DB Provider for DB2 passa as informações de data para o banco de dados IBM DB2.

A nova propriedade de seqüência de caracteres de conexão possui a seguinte definição:
DateTime como data = Value
Nesta propriedade de cadeia de caracteres de conexão, você pode definir o Value como Verdadeiro ou Falso. Se você adicionar o DateTime como data = TRUE instrução para a seqüência de caracteres de conexão OLE DB Provider for DB2 converte o parâmetro de data/hora do SQL Server para o tipo de dado DATE do IBM DB2. Em seguida, OLE DB Provider for DB2 passa o valor para o banco de dados IBM DB2.

Se você adicionar o DateTime como data = FALSE instrução para a seqüência de caracteres de conexão OLE DB Provider for DB2 passa o parâmetro de data/hora do SQL Server para o banco de dados IBM DB2 forem especificadas na instrução SQL. Nesse caso, OLE DB Provider for DB2 passa as informações de data e as informações de tempo para o banco de dados IBM DB2.

Observação: Esse comportamento é o comportamento padrão se você não adicionar a propriedade DateTime como data à seqüência de conexão.

O exemplo seqüência de caracteres de conexão a seguir mostra como usar a propriedade DateTime como data.
; Everything after this line is an OLE DB initialization string.
Provider=DB2OLEDB;Password=<Password>;Persist Security Info=True;User ID=<Username>;Initial Catalog=S105FRDM;Defer Prepare=False;Derive Parameters=False;Network Transport Library=TCP;Host CCSID=37;PC Code Page=1252;Network Address=<Address>;Network Port=446;Package Collection=DB2USER;Default Schema=DB2USER;Default Qualifier=DB2USER;DBMS Platform=DB2/AS400;Process Binary as Character=False;Connection Pooling=True;Units of Work=RUW;DateTime As Date=TRUE
Importante após aplicar esse hotfix e adicionar o DateTime como data = TRUE instrução à seqüência de conexão, é a seguinte mensagem erro:
SQLSTATE: 22007, SQLCODE: -180
Esse problema ocorre se a coluna do banco de dados IBM DB2 usa o tipo de dados IBM DB2 TIMESTAMP. Esse problema ocorre porque o banco de dados IBM DB2 espera receber as informações de data e as informações de tempo quando uma consulta é passada para uma coluna de banco de dados IBM DB2 que usa o tipo de dados IBM DB2 TIMESTAMP. O DateTime como data = TRUE instrução faz com que o provedor OLE DB para DB2 excluir as informações de tempo no valor do parâmetro de data/hora do SQL Server. Portanto, os dados não são válidos quando a consulta é passada para a coluna do banco de dados IBM DB2 que usa o tipo de dados IBM DB2 TIMESTAMP.

Se você deve consultar uma tabela do IBM DB2 que usa o tipo de dado DATE do IBM DB2 e o tipo de dados TIMESTAMP do IBM DB2, talvez seja necessário usar várias seqüências de conexão são configuradas para usar as propriedades corretas. Em seguida, você pode consultar com êxito os vários tipos de dados IBM DB2.

Para obter mais informações, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
824684Descrição da terminologia padrão usada para descrever as atualizações de software
Os produtos de terceiros mencionados neste artigo são fabricados por empresas independem da Microsoft. A Microsoft não dá nenhuma garantia, implícita ou não, sobre o desempenho ou confiabilidade desses produtos.

Propriedades

ID do artigo: 924599 - Última revisão: quinta-feira, 4 de fevereiro de 2010 - Revisão: 2.0
A informação contida neste artigo aplica-se a:
  • Microsoft Host Integration Server 2006 Enterprise Edition
  • Microsoft Host Integration Server 2006
  • Microsoft Host Integration Server 2004 Enterprise Edition
  • Microsoft Host Integration Server 2004 Standard Edition
  • Microsoft OLE DB Provider for DB2
Palavras-chave: 
kbmt kbautohotfix kbdb2oledb kbhis2004 kbfix kbbug kbhotfixserver kbqfe kbpubtypekc KB924599 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 924599

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com