Página 1 de 1

Oracle+txt

Enviado: Qua, 23 Jun 2004 2:47 pm
por Fabiano
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...

Enviado: Qua, 23 Jun 2004 2:54 pm
por dr_gori
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...

Enviado: Qui, 24 Jun 2004 9:36 am
por moonlight
Eu costumo usar a primeira dica que o amigo acima deu, usando SPOOL e SPOOL OFF no SQLPlus. Funciona bem.

Enviado: Qui, 24 Jun 2004 10:50 am
por Fabiano
aí pessoal,

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

Falow...

procedimento para gerar um txt no servidor onde esta o banco

Enviado: Qua, 25 Ago 2004 10:58 am
por jack
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;