Importar base TXT de acordo com layout para o banco de dados - Banco de Dados - Fórum iMasters
By djmauroslp, June 20, 2017 in Banco de Dados
queria importar os dados de uma base que está no formato txt para um banco de dados. a base é de campos de tamanho fixo como mostra o exemplo do layout.
Claro que o banco de dados é bem maior, porém sabendo como iniciar fica mais fácil o restante.
@djmauroslp, buenas.
Cara, a abordagem vai depender das ferramentas que tu utiliza. Pode detalhar qual arquitetura pretende usar?
3 horas atrás, Marlon Pacheco disse:
Na verdade essa é uma base de dados do Cadastro Único da CEF, e estou fazendo um sistema em C# com uma versão offline. Então gostaria de importar essa base disponibilizada em txt para um banco de dados no sql server 2014.
A minha dúvida é como fazer a leitura do arquivo txt e importar para o banco de dados levando em consideração o layout disponibilizado, visto que os campos são de tamanho fixo (posição).
@djmauroslp,
Acho que esse link te ajuda:
https://stackoverflow.com/questions/3825901/bulk-insert-fixed-width-fields
16 minutos atrás, Marlon Pacheco disse:
Ok, Marlon, vou dar uma olhada.
Em 2017-6-20 at 09:17, Marlon Pacheco disse:
Olá Marlon, não consegui pelo método que me enviou. você tem alguma ideia de como poderia realizar essa importação para o Access, pois se conseguir fazer, fica mais fácil de converter depois para o sql server.
Sql Server tem ferramentas para fazer isto.
Valeu @Motta vou dar uma olhada, obrigado!
Pelo o que entendi tem que ter um delimitador, nos casos de arquivos CSV, porém a base que tenho é txt e leva em consideração tamanhos fixos.
O delimitador no seu caso é o intervalo de espaço.... (pos+tamanho) como descrito na sua própria foto.
Você tem conhecimento de alguma linguagem de programação?! Pode te ajudar...
Uma opção é Inserir tudo na base, e tratar com scripts.
Veja se alguma das funções te ajuda:
mysql> SELECT SUBSTRING('MINHA LINHA',7, 5);
Vai retornar 'LINHA':
| SUBSTRING('MINHA LINHA',7, 5) |
| LINHA                         |
Vamos ver se alguém da um exemplo melhor, meu forte não é DB hehe
Geyvson Correia 0
Gostaria do Leiaute do CADÚnico quem poder me envie por email
geyvson@hotmail.com
2 horas atrás, Geyvson Correia disse:
Creio ser melhor abrir um tópico sobre isto , todavia o site da Caixa não ajuda ?
Não tem no site da Caixa e nem por telefone eles sabem informar, mas vi alguns trechos aqui no fórum desse leiaute, quem puder disponibilizar, ficaria grato.