CORRECÇÃO: Não é possível executar SELECT COUNT(*) contra DB2 no mainframe usando nome Four-Part

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: 296685
Este artigo foi arquivado. É oferecido "como está" e não será mais atualizado.
BUG #: 352492 (SHILOH_BUGS)
Sintomas
Quando você executa uma instrução SELECT COUNT(*) para recuperar a contagem de todos os registros em uma tabela em um servidor DB2 vinculada em um mainframe que está usando seu nome de quatro partes, a seguinte mensagem de erro ocorre:
Servidor: Mensagem 7321, nível 16, estado 2, linha 1
Ocorreu um erro ao preparar uma consulta para execução no provedor do OLE DB 'DB2OLEDB'.
[Provedor OLE/DB retornado mensagem: Ocorreu erro de SQL. Consulte a documentação para sua versão de DB2 específico para uma descrição do erro nativo e estado SQL associado. SQLSTATE: 42601, SQLCODE:-104]
Causa
SQL Server analisa uma instrução SELECT COUNT(*) como COUNT((0)) SELECT para todos os provedores. Isso pode ser observado criando um rastreamento interno DB2 no utilitário de rastreamento que é fornecido com o Microsoft SNA Server 4.0 e o Host Integration Server 2000.

A versão dos / 390 do DB2 servidor que executa em um mainframe não é possível trabalhar com o formato de SELECT COUNT((0)) e faz com que a mensagem de erro ocorrer.
Resolução
Para resolver esse problema, obtenha o service pack mais recente para o SQL Server 2000. Para obter informações adicionais, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
290211INF: Como obter o Service Pack mais recente do SQL Server 2000
Situação
A Microsoft confirmou que este é um problema no SQL Server 2000. Esse problema foi corrigido primeiro no SQL Server 2000 Service Pack 1.
Mais Informações
SQL Server permite que você criar servidores vinculados para acessar fontes de dados OLE DB distribuídos e heterogêneos. Após um servidor vinculado é criado com êxito, você pode executar consultas distribuídas contra o servidor vinculado usando os seguintes métodos:
  1. Nome de quatro partes no formulário de:

    LinkedServerName . Banco de dados/catálogo . Proprietário/esquema . Objeto
  2. OPENQUERY
  3. OPENROWSET
  4. OPENDATASOURCE
Para obter mais informações sobre esses métodos, consulte o tópico "Acessar dados externos" nos manuais online do SQL Server.

Etapas para reproduzir o problema

Executar uma instrução SELECT no seguinte formato depois que você criar com êxito um servidor vinculado para o servidor de DB2 em um mainframe:
SELECT COUNT(*) FROM LinkedDB2ServerName.Catalog.Schema.Table				
para obter mais informações sobre a criação de um servidor vinculado para o servidor de DB2, consulte o tópico "sp_addlinkedserver" nos manuais online do SQL Server.
SEU 2000

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 296685 - Última Revisão: 12/06/2015 02:15:50 - Revisão: 4.3

Microsoft Host Integration Server 2000 Standard Edition, Microsoft SQL Server 2000 Standard Edition

  • kbnosurvey kbarchive kbmt kbbug kbfix kbsqlserv2000sp1fix KB296685 KbMtpt
Comentários