Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Cantorum

[Resolvido] Load Data Infile

Recommended Posts

Duas dúvidas sobre o LOAD DATA INFILE:

 

Em um arquivo txt tenho as seguintes colunas:

#col1#;#col2#;#col3#;#col4#;#col5#;#col6#;#col7#;etc...

 

1 - A coluna5 e a coluna7 do arquivo txt são datas e estão no formato dd/mm/aaaa. Acontece que ao importar para o mysql elas devem ser alteradas para aaaa/mm/dd.

 

Gostaría de saber se é possível fazer essa alteração durante a importação.

Para isso estou usando o sequinte comando no PHP:

 

$sql = mysql_query("LOAD DATA INFILE 'c:/arquivo.txt' INTO TABLE arquivo FIELDS ENCLOSED BY '#' TERMINATED BY ';' LINES TERMINATED BY '\r'") or die ("ERRO NO INFILE -- ".mysql_error());

 

2 - A segunda dúvida é saber se é possível importar apenas algumas colunas do arquivo txt.

#col1#;#col3#;#col4#;#col7#;etc...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Da, respondendo as duas coisas de uma vez soh ...

 

LOAD DATA INFILE 'c:/arquivo.txt' INTO TABLE arquivo

(@col1,@col2,@col3,@col4,@col5,@col6,@col7)

set

campo1 = @col1,

campo2 = @col2,

campo_data = CONCAT(

RIGHT(CONCAT(20,SUBSTRING_INDEX(@col3,'/',-1)),4)

,'-',

RIGHT(CONCAT(0,SUBSTRING_INDEX(SUBSTRING_INDEX(@col3,'/',2),'/',-1)),2)

,'-',

RIGHT(CONCAT(0,SUBSTRING_INDEX(@col3_dia,'/',1)),2)

FIELDS ENCLOSED BY '#' TERMINATED BY ';' LINES TERMINATED BY '\r'

Compartilhar este post


Link para o post
Compartilhar em outros sites

Da, respondendo as duas coisas de uma vez soh ...

 

LOAD DATA INFILE 'c:/arquivo.txt' INTO TABLE arquivo

(@col1,@col2,@col3,@col4,@col5,@col6,@col7)

set

campo1 = @col1,

campo2 = @col2,

campo_data = CONCAT(

RIGHT(CONCAT(20,SUBSTRING_INDEX(@col3,'/',-1)),4)

,'-',

RIGHT(CONCAT(0,SUBSTRING_INDEX(SUBSTRING_INDEX(@col3,'/',2),'/',-1)),2)

,'-',

RIGHT(CONCAT(0,SUBSTRING_INDEX(@col3_dia,'/',1)),2)

FIELDS ENCLOSED BY '#' TERMINATED BY ';' LINES TERMINATED BY '\r'

giesta

 

Muito obrigado!!

Era isso que eu estava precisando.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Da, respondendo as duas coisas de uma vez soh ...

 

LOAD DATA INFILE 'c:/arquivo.txt' INTO TABLE arquivo

(@col1,@col2,@col3,@col4,@col5,@col6,@col7)

set

campo1 = @col1,

campo2 = @col2,

campo_data = CONCAT(

RIGHT(CONCAT(20,SUBSTRING_INDEX(@col3,'/',-1)),4)

,'-',

RIGHT(CONCAT(0,SUBSTRING_INDEX(SUBSTRING_INDEX(@col3,'/',2),'/',-1)),2)

,'-',

RIGHT(CONCAT(0,SUBSTRING_INDEX(@col3_dia,'/',1)),2)

FIELDS ENCLOSED BY '#' TERMINATED BY ';' LINES TERMINATED BY '\r'

giesta

 

Muito obrigado!!

Era isso que eu estava precisando.

 

 

 

como ficaria para fazer essa mesma função em ASP??!! esbarrei no mesmo problema :s, porém utilizo ASP..

 

ficaria mto grato com a ajuda!!!

 

EDIT: resolvi com alguns comandos do asp, ficaria assim

 

HOJE=year(now)&"-"&month(now)&"-"&day(now)
caso a data seja uma digitada pelo usuário, é só substituir now pela variável q armazena a data digitada :)

 

é isso ae...

pode ser de utilidade para alguém

ABÇS

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.