Published on

May 2, 2010

Usando a Transformação de Coluna Derivada no SQL Server Integration Services

A transferência de dados entre o Excel e o SQL Server pode ser complexa devido a diferentes tipos de dados, às vezes incompatíveis. Embora o Assistente de Importação e Exportação no SQL Server Integration Services (SSIS) forneça uma solução usando a Transformação de Conversão de Dados, há uma abordagem alternativa usando a Transformação de Coluna Derivada. Neste artigo, exploraremos as características e o uso da Transformação de Coluna Derivada.

A Transformação de Coluna Derivada é um componente poderoso e flexível da Tarefa de Fluxo de Dados do SSIS. Ele permite manipular dados usando a linguagem de expressão do SSIS. Para entender sua funcionalidade, vamos percorrer um exemplo semelhante ao abordado em um artigo anterior que usou a Transformação de Conversão de Dados.

Primeiro, crie uma planilha de exemplo com duas colunas: Título e Diretor. A coluna Título deve ter um tipo de dados varchar, enquanto a coluna Diretor deve ser definida como nvarchar. Ambas as colunas devem ter um comprimento máximo de 100 caracteres. Você pode criar a tabela de destino no SQL Server usando a seguinte instrução T-SQL:

CREATE TABLE [dbo].[TwoThumbsUp](
    [Title][varchar](100) NOT NULL,
    [Director][nvarchar](100) NOT NULL
)

Em vez de depender do Assistente de Importação e Exportação, criaremos manualmente um projeto SSIS no Business Intelligence Development Studio. Após iniciar o estúdio, selecione “Novo -> Projeto…” no menu Arquivo e escolha o modelo de projeto Integration Services Project. Especifique um nome e localização para o projeto.

No projeto, adicione conexões para a planilha do Excel e o banco de dados do SQL Server. Clique com o botão direito na janela Gerenciadores de Conexão e selecione “Nova Conexão…”. Escolha a entrada EXCEL para o Gerenciador de Conexão do Excel e forneça os detalhes necessários. Da mesma forma, adicione uma nova Conexão OLE DB para o banco de dados do SQL Server.

Em seguida, preencha o pacote SSIS com componentes para extração, transformação e carregamento de dados. Arraste o ícone Origem do Excel da Caixa de Ferramentas para a superfície do designer e configure-o para usar o Gerenciador de Conexão do Excel e a planilha apropriada. Em seguida, adicione a Transformação de Coluna Derivada abaixo da Origem do Excel e conecte-os.

Abra o Editor de Transformação de Coluna Derivada e explore sua interface. A seção superior esquerda permite acessar variáveis do pacote e colunas de entrada. A seção direita fornece operações que podem ser aplicadas para gerar a saída desejada, incluindo funções matemáticas, funções de string, funções de data e hora, funções nulas, operadores matemáticos e lógicos e conversões de tipo.

Para ilustrar a necessidade de conversão de tipo de dados, conecte as colunas de saída da Transformação de Coluna Derivada ao componente Destino OLE DB. Configure o Destino OLE DB para usar o gerenciador de conexão do SQL Server e mapeie as colunas de entrada para as colunas de destino.

Neste ponto, você pode encontrar um erro relacionado à conversão de tipo de dados entre strings unicode e strings não unicode. Para resolver isso, volte ao Editor de Transformação de Coluna Derivada e crie novas colunas com expressões de conversão de tipo que convertam as strings unicode em strings não unicode. Atualize os mapeamentos no Destino OLE DB de acordo.

Ao utilizar a Transformação de Coluna Derivada, você pode converter com sucesso tipos de dados incompatíveis e transferir dados entre o Excel e o SQL Server. Em artigos futuros, exploraremos outros componentes do SSIS que ajudam com desafios comuns de ETL.

Recursos adicionais:

Fique ligado para mais artigos de Marcin Policht.

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.