PROBLEMA: DTS assistente poderá não detectar tipo de coluna do Excel para dados mistos no SQL Server

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: 236605
Sintomas
Quando utiliza o Assistente de importação do Microsoft SQL Server Data Transformation Services (DTS) para importar dados de uma folha de cálculo do Microsoft Excel, se uma coluna de texto contém dados que podem ser interpretados como dados mistos (por exemplo, caracteres alfanuméricos que representam dados hexadecimais), iniciais algumas linhas determinam o tipo de dados real utilizado e linhas subsequentes podem ser transferidas como NULL. DTS não fornece uma mensagem de aviso para indicar que algumas linhas não poderão transferir.

Nota Se estiver a utilizar o SQL Server 2005, utilize o SQL Server assistente importação e exportação para efectuar a transformação de dados.
Causa
Este comportamento ocorre por predefinição para o ISAM do Excel. As linhas primeiro 8 determinar o tipo dados da coluna. Por exemplo, se a maioria das linhas primeiros 8 caracteres numéricos, o tipo de dados da coluna é um número. Todos os valores subsequentes que não cabem esse tipo de dados são devolvidos como NULL.
Como contornar
Uma solução é guardar a folha de Excel como um ficheiro de texto e, em seguida, utilizar o Assistente de DTS para importar o ficheiro para o SQL Server.
Mais Informação

Passos para reproduce o comportamento

Por exemplo, crie a seguinte folha de cálculo no Excel:
DecimalHex
11
22
33
44
55
66
77
88
99
10UM
11B
12C
13D
14ELECTRÓNICO
15F
A primeira coluna "Decimal" é formatada como geral e a segunda coluna "HEX" são formatados como texto.

Se carregar esta tabela do Excel para o SQL Server utilizando o Assistente de DTS, linhas 10-15 (valores A-F) são NULL quando carregado na tabela de SQL (a coluna HEX formatada como texto no livro, mas DTS torna um tipo flutuante uma vez que detecta a coluna de origem como DBTYPE_R8).
Referências
Para mais informações, consulte o tópico "SQL Server Data Transformation Services" no SQL Server Books Online.
kbDSupport

Aviso: Este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 236605 - Última Revisão: 02/22/2007 22:33:50 - Revisão: 6.3

Microsoft SQL Server 2000 Standard Edition, Microsoft SQL Server 7.0 Standard Edition, Microsoft Excel 97 Standard Edition, Microsoft SQL Server 2005 Standard Edition, Microsoft SQL Server 2005 Developer Edition, Microsoft SQL 2005 Server Enterprise, Microsoft SQL 2005 Server Workgroup

  • kbmt kbdatabase kbprb KB236605 KbMtpt
Comentários