Usuário com melhor resposta
Adição de Coluna com valor das primeiras linhas de um arquivo Flat.

Pergunta
-
Boa Tarde Mestres.
Por não conseguir formular a pergunta apropriadamente peço desculpas.
Uso SQL Server 2005/SSIS e tenho que importar um arquivo(Flat) com um Formato parecido com Esse:
-BOF - Data 11/11/2011O ARQUIVO TESTE IMPORTANTE Data 10/10/2011D BLA BLA BLA X X X X COL_1 COL_2 COL_3 COL_4 A B 11/11/11 C A B 11/11/11 C A B 11/11/11 C A B 11/11/11 C A B 11/11/11 C A B 11/11/11 C -EOF-
Consigo me virar para importar os dados principais para a tabela no formato que preciso.
Porém não consigo gerar uma Quinta e Sexta Coluna (COL_5 e COL_6) que adicione a data das primeiras Linhas do arquivo flat.
Tentei usar o Script Task e o Script Component pra salvar os valores do registro de um Condicional Split sem sucesso.
Existe outra forma ou tenho que aprender a salvar os valores em uma "variável global" para depois usa-las através de um Derived Column?Grato pela atenção!
Thales Faggiano
Respostas
-
Thales,
O que você poderia fazer é tentar criar algumas expressões em suas Derived Column para gerar estes valores de data.
Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]- Marcado como Resposta Thales Faggiano segunda-feira, 2 de maio de 2011 14:16
-
Pois então, o que fiz foi criar um Script Task que abre o arquivo e salva as duas primeiras linhas em variáveis:
Public Sub Main() Dim Arquivo As String = Dts.Variables("User::NomeDoArquivo").Value.ToString Dim objLER As New System.IO.StreamReader(Arquivo) Dts.Variables("User::Linha1").Value = Mid(objLER.ReadLine(),5,10) Dts.Variables("User::Linha2").Value = Mid(objLER.ReadLine(),5,10) objLER.Close() Dts.TaskResult = Dts.Results.Success End Sub
E criei uma coluna através de um Data Flow Transformation Derived Column com a expressão:
SUBSTRING(@[User::Linha1], 4, 3) + SUBSTRING(@[User::Linha1], 1, 3) + RIGHT(@[User::Linha1], 4)
Thales Faggiano- Marcado como Resposta Thales Faggiano segunda-feira, 2 de maio de 2011 14:16
Todas as Respostas
-
Thales,
O que você poderia fazer é tentar criar algumas expressões em suas Derived Column para gerar estes valores de data.
Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]- Marcado como Resposta Thales Faggiano segunda-feira, 2 de maio de 2011 14:16
-
Pois então, o que fiz foi criar um Script Task que abre o arquivo e salva as duas primeiras linhas em variáveis:
Public Sub Main() Dim Arquivo As String = Dts.Variables("User::NomeDoArquivo").Value.ToString Dim objLER As New System.IO.StreamReader(Arquivo) Dts.Variables("User::Linha1").Value = Mid(objLER.ReadLine(),5,10) Dts.Variables("User::Linha2").Value = Mid(objLER.ReadLine(),5,10) objLER.Close() Dts.TaskResult = Dts.Results.Success End Sub
E criei uma coluna através de um Data Flow Transformation Derived Column com a expressão:
SUBSTRING(@[User::Linha1], 4, 3) + SUBSTRING(@[User::Linha1], 1, 3) + RIGHT(@[User::Linha1], 4)
Thales Faggiano- Marcado como Resposta Thales Faggiano segunda-feira, 2 de maio de 2011 14:16
-