Estou procurando uma direção aqui. Preciso automatizar um processo que irá importar vários tipos de arquivos diferentes para o SQL Server. Eles são todos arquivos baseados em texto (sem Excel), mas o formato interno dos arquivos é diferente. Alguns são delimitados por vírgulas, outros são delimitados por tabulações. Todos eles contêm as mesmas informações básicas (nome do cliente, endereço, telefone, etc.), mas alguns arquivos contêm dados adicionais. Quero importar apenas os dados comuns de cada arquivo. Assim, alguns dados serão ignorados em um arquivo, mas em outro arquivo todos os dados precisam ser importados.
Eu ia usar um loop SSIS ForEach, mas estou tendo problemas para descobrir como lidar com vários formatos de arquivo. Eu fico preso na string de conexão para configurar como importar os arquivos. Alguém já passou por isso antes? Em caso afirmativo, você pode me empurrar na direção certa?
Quanto é "vários"? Se forem três ou quatro, começarei escrevendo um script .NET simples no SSIS que classifica os arquivos em diretórios separados. Use vários loops foreach, cada um trabalhando em seu próprio diretório, com os arquivos nesse diretório tendo um formato consistente.
Se houver muitos formatos, provavelmente seria mais rápido escrever um pequeno aplicativo que analise arquivos e grave um único arquivo limpo para importação subsequente de BCP ou SSIS.
Se os nomes dos cabeçalhos forem os mesmos em todos os arquivos delimitados, você poderá usar o componente Script Task/Script dentro do Foreach Loop Container. Você pode colocar a lógica (por nomes de cabeçalho de codificação) - Primeiro verifique o tipo delimitado do arquivo (vírgula/Tab etc) e, em seguida, extraia dados apenas para as colunas que você está interessado nesse arquivo simples.