Ir para conteúdo
Fórum Script Brasil
  • 0

Importação de arquivo delimitado com tamanho fixo


sidimar

Pergunta

Boa tarde amigos, 
 

Algém poderia me ajudar com a importação ou ao menos o material que eu poderia pesquisar para conseguir importar um arquivo gigantesco com espaçamento definido por campo?
Eu achei que fosso do tipo ofx mas não parece o caso e quando pesquiso por importar arquivo só encontro material sobre csv separado por virgula ou outro.

Tem um layout mas não tenho noção de como começar.

 

Obrigado.

a1.PNG

A2.PNG

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Eu usei a minha imaginação e criei o arquivo teste.txt com o poderoso Bloco de Notas do Windows assim:

123456789012312345678901             12202210222022102211
123456789012312345678901             12202210222022102211
123456789012312345678901             12202210222022102211
123456789012312345678901             12202210222022102211
123456789012312345678901             12202210222022102211

Depois criei uma tabela teste no MySQL assim:
 

CREATE TABLE `teste` (
  `chave` varchar(13) COLLATE utf8_swedish_ci DEFAULT NULL,
  `cf` varchar(11) COLLATE utf8_swedish_ci DEFAULT NULL,
  `vazio` varchar(13) COLLATE utf8_swedish_ci DEFAULT NULL,
  `reg` varchar(2) COLLATE utf8_swedish_ci DEFAULT NULL,
  `datacad` varchar(8) COLLATE utf8_swedish_ci DEFAULT NULL,
  `dataalt` varchar(8) COLLATE utf8_swedish_ci DEFAULT NULL,
  `status` varchar(1) COLLATE utf8_swedish_ci DEFAULT NULL,
  `indicador` varchar(1) COLLATE utf8_swedish_ci DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8_swedish_ci

# note que não tem nenhuma chave primária, pois os exemplos que eu trabalhei tem um monte de registros repetidos.

Finalmente, pedi para o MySQL importar os dados do teste.txt na tabela teste, assim
 

set global local_infile=1;
LOAD DATA LOCAL INFILE '/wamp64/www/teste.txt' INTO TABLE teste (@row)
set 
chave=trim(substr(@row,1,13)),
cf=trim(substr(@row,14,11)),
vazio=trim(substr(@row,25,13)),
reg=trim(substr(@row,38,2)),
datacad=trim(substr(@row,40,8)),
dataalt=trim(substr(@row,48,8)),
status=trim(substr(@row,56,1)),
indicador=trim(substr(@row,57,1));

 

Sem título.png

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...