Conheça também: Onmasters . Ofertas . Divulgue! . Vai.la . Geraboleto . Baixa.la . Assista.la . Joga.la
» Início » Desenvolvimento » Como salvar o resultado de uma consulta MySQL em um txt -->
 
Avaliação: | Publicado em: 21/08/2005
Como salvar o resultado de uma consulta MySQL em um txt
Gabriel Manzano Trabalha como programador em uma agência web e atualmente é graduando em Tecnologia em Informática e Aplicações Web.


É muito comum a necessidade de exportar uma determinada consulta em um arquivo texto, seja para fazer um backup, seja até mesmo para a utilização da consulta em outros aplicativos, como por exemplo, a construção de gráficos em uma planilha eletrônica a partir dos dados consultados.

Para realizarmos essa tarefa no MySQL, devemos utilizar a seguinte sintaxe:

INTO OUTFILE [nome_arquivo][opções_FIELD] (Sem as chaves!)

Por exemplo, em uma tabela agenda, podemos gravar em um arquivo txt a consulta que extrai todos os campos dessa tabela.

Não especificndo nenhum parâmetro como opção, o MySQL faz a gravação padrão, separando os campos com TAB.
Não especificando nenhuma opção de caminho para o arquivo, o MySQL irá gravá-lo na mesma pasta em que se encontra a base de dados (caso aconteça isso, não poderá haver nenhum outro arquivo com o mesmo nome nessa pasta).

Caso tenhamos que especificar um outro endereço, devemos fazê-lo no nome do arquivo. Caso a pasta em que o arquivo deverá ser salvo seja c:/backup, a sintaxe da consulta seria:

SELECT *
INTO OUTFILE "c:/backup/saida.txt"

Se precisarmos especificar outros tipos de delimitadores de campos no arquivo de consulta, devemos utilizar o parâmetro FIELDS. A sintaxe é a que segue:

FIELDS
TERMINATED BY 'caracter_x'
OPTIONALLY ENCLOSED BY 'caracter_y'
ESCAPED BY 'caracter_escape'
LINES TERMINATED BY 'caracter_termino'

Sobre a cláusula FIELDS, como vimos nos exemplos anteriores, ela é opcional. Mas uma vez que seja declarada, é necessário preencher um dos parâmetros. Seus parâmetros são os seguintes:

. TERMINATED: indica qual caracter será o delimitador de campos do arquivo.
Se for o 'TAB', não precisamos declará-lo (por ser padrão). Aqui podemos definir outro padrão, como por exemplo o ' ; ';
. ENCLOSED BY: indica o caracter que será usado para envolver os campos no arquivo. Se não colocarmos o parâmetro OPTIONALLY, todos os campos começarão e terminarão com o caracter especificado. Colocando o OPTIONALLY, apenas os campos CHAR, VARCHAR e TEXT começarão e terminarão com este caracter especificado;
. ESCAPED BY: controla a forma como determinados caracteres foram gravados
no arquivo. É válido quando queremos que a consulta informe um valor alternativo a determinados valores (por exemplo campos com conteúdo NULL);
. LINES TERMINATED BY: este parâmetro, opcional, indica qual deve ser o caracter que indica o fim de linha.

Marcelo Bressan <Marcelo.bressan@zanc.com.br>
Muito bom so nao resolveu meu problema ..

Tenho uma consulta sql e preciso salvar em txt estou trabalhando com sql 2000

usei o

select from categorizadap1_data
into outfile "C:SAIDA.TXT"

e nao funciona me ajude

att,

Marcelo

deve ter faltado o aí:
fica
select from categorizadap1_data
into outfile "C:SAIDA.TXT";
no mysql funciona.

Eu <a@b.com>
esse site naum permite escrever asterisco como símbolo é só isso q falta ali.
tee /home/igor/arquivo.txt
SUA CONSULTA
notee;

só ver o arquivo agora :P : Não avaliado
Ulysses
Marcelo Bressan,

o caminho indicado na consulta SQL, "c:/SAIDA.TXT", por exemplo, será da máquina de onde estiver instalado o banco. Se você acessa o banco remotamente, o arquivo será salvo não no seu disco, mas no disco do servidor.
Contorne isto salvando numa pasta compartilhada e abrindo o arquivo remotamente. Aqui eu tentei indicar na consulta o caminho da minha máquina na rede com a pasta para salvar, compartilhada, mas não funcionou. Abraços.