Este exemplo demonstra como configurar uma transformação de Expressão e uma transformação de SQL para gerar consultas SQL com base no valor de uma coluna em um arquivo de origem.
Neste exemplo, temos uma tabela de banco de dados que contém preços de produtos. É necessário atualizar os preços a partir de um arquivo de transações. Cada linha de transação atualiza os preços de atacado, varejo ou de manufatura no banco de dados com base em uma coluna de códigos de preços.
O arquivo de origem é um arquivo simples. É possível configurar uma transformação de Expressão para que retorne os nomes de coluna a serem atualizados, com base no valor de uma coluna de código de preço em cada linha de origem. A transformação de Expressão transfere os nomes de coluna à transformação SQL. A transformação SQL executa uma consulta SQL dinâmica que atualiza colunas na tabela Prod_Cost com base nos nomes de coluna que recebe. A transformação de SQL retorna erros do banco de dados para o destino Error_File.
A figura a seguir demonstra como a transformação de Expressão transfere nomes de coluna à transformação SQL:
O mapeamento contém os seguintes componentes:
Definição da origem de preços.
O arquivo simples PPrices contém uma ID de produto, preço de pacote, preço unitário e código de preço. O código de preço define se o preço de pacote e o preço unitário são preços de atacado, varejo ou de manufatura.
Definição do arquivo simples Error_File
. O destino contém o campo Datastring que recebe erros de banco de dados da transformação SQL.
Transformação Exp_Dynamic_Expression.
A transformação de Expressão define quais nomes da coluna Prod_Cost devem ser atualizados com base no valor da coluna PriceCode. Ela retorna os nomes de coluna nas portas UnitPrice_Query e PkgPrice_Query.
Transformação SQL_Dynamic_Query
. A transformação SQL tem uma consulta SQL dinâmica para atualizar uma coluna UnitPrice e uma coluna PkgPrice na tabela Prod_Cost. Ela atualiza as colunas nomeada nas colunas UnitPrice_Query e PkgPrice_Query.
O mapeamento não contém uma definição de tabela relacional para a tabela Prod_Cost
.
A transformação SQL tem uma conexão estática com o banco de dados que contém a tabela Prod_Cost. A transformação gera as instruções de SQL para atualizar os preços unitários e preços de pacote na tabela.