Pergunta

aqui está um cenário peculiar:Estou tentando importar um arquivo delimitado por tabulação para o mysql que possui algumas linhas com coluna de preços acima de 1.000.Quando termino a importação, os valores após a vírgula são excluídos e acabo com apenas 1 na minha tabela.Tentei em ambiente Linux e Windows com os mesmos resultados.

Por exemplo, se a linha 1, coluna 1 em um arquivo delimitado por tabulação contiver o valor 1.564,50, acabo com 1 na minha linha 1, coluna 1 na minha tabela MySQL.esta é a afirmação que estou usando.

LOAD DATA LOCAL INFILE 'blah.txt'
 INTO TABLE `table1`
 FIELDS TERMINATED BY '\t'
 OPTIONALLY ENCLOSED BY  ''''
 LINES TERMINATED BY '\n';

Então minha pergunta é 1.alguém pode confirmar isso ou como posso corrigir esse comportamento se estiver faltando alguma coisa do meu lado.2.Se este for um bug do mysql, quais são minhas opções para uma solução alternativa para importar esses valores corretamente até que o mysql o corrija.

Foi útil?

Solução

O delimitador padrão do Windows é vírgula.Altere-o por outro caractere e combine-o com seus dados de origem.

Para alterar o delimitador padrão:

Vá para o Painel de Controle -> Opções Regionais e de Idioma (ou Opções de Data, Hora e Regionais -> Opção Regional e de Idioma em algumas máquinas) -> clique no botão Personalizar.Na caixa de diálogo que se abre, você verá a opção "Separador de lista", na qual você pode alterar a vírgula para um caractere diferente -> clique em Aplicar, em OK e em Aplicar novamente.Agora, quando você entrar no Excel e escolher Exportar como CSV, o novo caractere será usado como delimitador.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top