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:
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 ?
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;