Oracle+txt

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
Fabiano
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 5
Registrado em: Qua, 23 Jun 2004 2:18 pm

Boa Tarde,

gostaria de gerar um arquivo txt a partir de um resultado sql num banco de dados Oracle, sei que o mysql contem essa instrução:

Selecionar tudo

  SELECT * INTO OUTFILE "texto.txt" FROM tabela;
Existe algo similar para o oracle??

Agradeço...
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Em SQL nativo, isso não é possível.

Você tem que nos informar qual ferramente você quer fazer isso:
* No SQL*Plus, você pode usar SPOOL c:\arq.txt (depois, pra terminar, usa SPOOL OFF)
* No forms, você usa TEXTO_IO
* No banco, usa o UTL_FILE
* Etc...
moonlight
Rank: Estagiário Júnior
Rank: Estagiário Júnior
Mensagens: 1
Registrado em: Qui, 24 Jun 2004 9:33 am
Localização: Goiânia
:P

Eu costumo usar a primeira dica que o amigo acima deu, usando SPOOL e SPOOL OFF no SQLPlus. Funciona bem.
Fabiano
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 5
Registrado em: Qua, 23 Jun 2004 2:18 pm

aí pessoal,

segui as dicas e vi a utilização do spool, obrigado pelo ajuda deu muito certo...

Falow...
jack
Rank: Estagiário Júnior
Rank: Estagiário Júnior
Mensagens: 1
Registrado em: Seg, 28 Jun 2004 8:18 am
Localização: CURITIBA - PR

acho que oque você quer fazer é isso não é ?
antes você tem que setar o parametro ?

Selecionar tudo

utl_file_dir = /tmp 
esse parametro esta em 'init<sid>.ora'
- funciona assim , primeiro você vai criar um procedimento com um cursor que vai gerar o resultado que você precisa.
-depois você chama esse procedimento passando o retorno dele como paramentro pra essa procedure abaixo !

Selecionar tudo

create or replace procedure sp_grave_arquivotxt
  (pdiretorio      in varchar2,
   pnome_arquivo   in varchar2,
   ptexto          in varchar2)
is
    vOutput_file  utl_file.file_type;
begin
-- Se já existir abre , senão cria !
    vOutput_file := utl_file.fopen (pdiretorio,pnome_arquivo, 'W');
-- Grava linhas no arquivo.
    Utl_File.put_line(vOutput_file, ptexto );
-- fecha
    Utl_File.fclose(vOutput_file);
    Dbms_Output.Put_Line('Arquivo gerado com sucesso.');
EXCEPTION
      WHEN UTL_FILE.INVALID_OPERATION THEN
               Dbms_Output.Put_Line('Operação inválida no arquivo.');
               UTL_File.Fclose(vOutput_file);
      WHEN UTL_FILE.WRITE_ERROR THEN
               Dbms_Output.Put_Line('Erro de gravação no arquivo.');
               UTL_File.Fclose(vOutput_file);
      WHEN UTL_FILE.INVALID_PATH THEN
               Dbms_Output.Put_Line('Diretório inválido.');
               UTL_File.Fclose(vOutput_file);
      WHEN UTL_FILE.INVALID_MODE THEN
               Dbms_Output.Put_Line('Modo de acesso inválido.');
               UTL_File.Fclose(vOutput_file);
      WHEN Others THEN
               Dbms_Output.Put_Line('Problemas na geração do arquivo.');
               UTL_File.Fclose(vOutput_file);
END;
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 10 visitantes