Pergunta

Eu tenho alguns dados de fornecedores que tem o SOH (caracteres ASCII 1) como delimitador de campo e STX (caracteres ASCII 2) como o delimitador de registro. É possível carregar esses dados com LOAD DATA INFILE sem pré-processamento do arquivo e substituindo aqueles personagens com algo mais comum?

Foi útil?

Solução

eu entendi.

LOAD DATA LOCAL INFILE 'myfile.txt' INTO TABLE my_table 
    CHARACTER SET UTF8 
    FIELDS TERMINATED BY X'01'
    LINES TERMINATED BY X'02'
    (col1, col2, col3);

Outras dicas

Você pode tentar FIELDS TERMINATED BY _ascii 0x02. Eu não sei se ele vai trabalhar para LOAD DATA INFILE, mas funciona em SELECT (ou seja, os rendimentos SELECT _ascii 0x61 'a').

Se você estiver usando mysqlimport o formato para valores hexadecimais em campos terminada-by e linhas terminadas em-by etc é:

mysqlimport --local --user = username --password = secretos --ignore-lines = 4 --default-character-set = UTF8 --fields terminada-by = 0x01 --lines terminada-by = 0x02 --verbose databasename thefiletoimport

Você pode tentar apenas enviar o caractere ascii diretamente dentro do literal de cadeia .. se a sua ligação não tem uma charset ou codificação atribuído, em seguida, mysql pode simplesmente aceitá-la como uma cadeia válida. Você teria que fazê-lo através de uma conexão de rede ou de dados de tubulação para o cliente mysql. Eu não acho que você vai ser capaz de escrever que dentro em um console.

FIELDS TERMINATED X'01'

funciona para mim

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