Problema: Falha de transferência de dados de origem do Jet 4.0LEDB com o erro de sobrecarga da memória intermédia

Traduções de Artigos Traduções de Artigos
Artigo: 281517 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Nesta página

Sintomas

Quando importa dados de uma origem de dados Jet OLEDB 4. 0 através da utilização de serviços de transformação de dados (DTS) e o fornecedor de Microsoft OLE DB para o Jet, a tarefa de bomba de dados poderá falhar com esta mensagem de erro:
"Erro na fonte de 9 de números de linha erros encontrados até ao momento nesta tarefa: 1"
Erro geral:-2147217887(80040E21)
3('Col3') de coluna de origem de dados são demasiado grandes para o tamanho da memória intermédia especificada.
Se a origem tem campos com mais de 255 caracteres, os dados de destino para estes campos poderão ser truncados para 255 caracteres. DTS falhar na primeira linha que tem um campo com mais de 255 caracteres. Para verificar isto, procure o número da linha que apresenta a mensagem de erro.

Causa

O fornecedor de Jet OLE DB lê uma chave de registo para determinar quantas linhas devem ser lidos para identificar o tipo da coluna origem. A definição de registo é:

HKLM\Software\Microsoft\Jet\4.0\Engines\Excel\TypeGuessRows

Por predefinição, o valor para esta chave é 8. Por conseguinte, o fornecedor de pesquisa as linhas de 8 pela primeira vez os dados de origem para determinar os tipos de dados para as colunas. Se qualquer campo aspecto do texto e o comprimento dos dados são a mais de 255 caracteres, a coluna está escrita como um campo de memorando. Por isso, se não há dados com um comprimento superior a 255 caracteres, nas linhas da origem de 8 pela primeira vez, o Jet não é possível determinar com precisão a natureza do tipo de dados.

Como contornar

ImportanteEsta secção, método ou tarefa contém passos que explicam como modificar o registo. No entanto, podem ocorrer problemas graves se modificar o registo de forma incorrecta. Por conseguinte, certifique-se de que segue estes passos cuidadosamente. Para uma maior protecção, cópia do registo antes de o modificar. Em seguida, pode restaurar o registo se ocorrer um problema. Para mais informações sobre como efectuar cópias de segurança e restaurar o registo, faça clique sobre o número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
322756Como efectuar cópias de segurança e restaurar o registo no Windows

Para alterar o valor deTypeGuessRows, utilize estes passos:
  1. Sobre oIniciarmenu, clique emExecutar. NaExecutarcaixa de diálogo, escrevaRegedt32e, em seguida, clique emOK.
  2. Abra a seguinte chave no editor de registo:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel

    NotaPara os sistemas de 64 bits, a chave correspondente é a seguinte:

    HKLM\SOFTWARE\wow6432node\microsoft\jet\4.0\Engines\Excel
  3. Faça duplo clique emTypeGuessRows.
  4. NaDWORD editorcaixa de diálogo, clique emDecimalemBase. Escreva um valor entre 0 e 16. o, inclusive, paraValordados.
  5. Clique emOKe, em seguida, saia do Editor de registo.
Uma segunda forma de contornar este problema (sem a modificação do registo) é para se certificar de que as filas com os campos que têm dados 255 caracteres ou maior, se estiverem presente nas linhas do ficheiro de dados de origem 8 pela primeira vez.

Mais Informação

O intervalo válido de valores para oTypeGuessRowsa chave é de 0 a 16. No entanto, se o valor for 0, o número de linhas de origem de pesquisa é 16384. Tenha em atenção que um valor de zero pode fazer com que um pequeno desempenho se o ficheiro de origem for muito grande.

Passos para reproduzir o problema

  1. Abra um novo livro do Microsoft Excel e crie uma folha com três colunas e 11 linhas e incluir a primeira linha com os nomes das colunas.
  2. Inserir dados nas células de modo a que os primeiros 8 linhas têm dados menos de 255 caracteres de comprimento.
  3. Inserir dados em que for maiores do que 255 caracteres de comprimento para as linhas do décimo e décimo primeiro. Guarde esta folha como ExcelSource.xls.
  4. Abra o SQL Server Enterprise Manager e expanda o nome do servidor. Com o botão direitoServiços de transformação de dadose, em seguida, clique emImportar dados.
  5. Para a origem, seleccione o fornecedor do Excel 97-2000 e de fornecer o nome da folha de Excel que guardou o anterior (ExcelSource.xls).
  6. Para seleccionar o destinoFornecedor de Microsoft OLEDB para SQLe, em seguida, seleccione a base de dados de destino.
  7. Clique emCopiar tabelas e vistas a partir da base de dados de origeme, em seguida, clique emSeguinte.
  8. NaSeleccione as tabelas de origemcaixa de diálogo, seleccione Folha1$, clique emSeguinte, e, em seguida, execute imediatamente o pacote. A execução do pacote falha com a mensagem de erro apresentada na secção "Sintomas".

  9. Largue a tabela Folha1$ da base de dados de destino, utilizando o comandoLargar tabela Folha1$.
  10. Siga a resolução na secção "Como contornar" e efectuar a alteração para a chave de registo paraTypeGuessRows.
  11. Agora, repita os passos 4 a 8. Este período de tempo que a execução do pacote for bem sucedida.

REFERÊNCIAS

Para obter informações adicionais sobre este comportamento específico para o Microsoft Excel, clique no número de artigo existente abaixo para visualizar o artigo na Microsoft Knowledge Base:
189897XL97: Os dados truncados para 255 caracteres com o controlador ODBC do Excel

Propriedades

Artigo: 281517 - Última revisão: 5 de fevereiro de 2011 - Revisão: 1.0
A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2000 Standard Edition
Palavras-chave: 
kbjet kbprb kbmt KB281517 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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 281517

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