UTL_FILE - Ajuda
31/05/2017
0
DECLARE arquivo_saida UTL_File.File_Type; Cursor Cur_Linha is SELECT DISTINCT DWCDCLIE FROM DWATOOA WHERE DWFLATTI = 0 AND DWCDSTAT = 0; BEGIN arquivo_saida := UTL_File.Fopen('C:/Teste/','teste_exp.txt', 'w'); For Reg_Linha in Cur_linha Loop UTL_File.Put_Line(arquivo_saida, Reg_linha.DWCDCLIE); End Loop; UTL_File.Fclose(arquivo_saida); 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(arquivo_saida); WHEN UTL_FILE.WRITE_ERROR THEN Dbms_Output.Put_Line('Erro de gravação no arquivo.'); UTL_File.Fclose(arquivo_saida); WHEN UTL_FILE.INVALID_PATH THEN Dbms_Output.Put_Line('Diretório inválido.'); UTL_File.Fclose(arquivo_saida); WHEN UTL_FILE.INVALID_MODE THEN Dbms_Output.Put_Line('Modo de acesso inválido.'); UTL_File.Fclose(arquivo_saida); WHEN Others THEN Dbms_Output.Put_Line('Problemas na geração do arquivo.'); UTL_File.Fclose(arquivo_saida); END;
Felipe
Post mais votado
31/05/2017
Se bem me lembro, precisa existir o registros do diretório no banco
select * from dba_directories;
Ou os parâmetros do Oracle
select * from V$PARAMETER
where NAME = 'utl_file_dir';
Não testei a sua rotina.
Roberto Spernega
Mais Posts
31/05/2017
Daniel Araújo
O diretório existe? Se existe o usuário system tem permissão de escrita no diretório? Acho que esse artigo pode te ajudar:
http://www.oraclehome.com.br/2012/02/13/como-ler-e-gravar-arquivos-textos-pelo-oracle-10g-ou-superior/
http://www.oraclehome.com.br/2012/02/13/como-ler-e-gravar-arquivos-textos-pelo-oracle-10g-ou-superior/
Se a resposta for útil não esquece de dar um like!
31/05/2017
Felipe
01/06/2017
Roberto Spernega
Tem um artigo muito bom , deve te ajudar.
https://www.devmedia.com.br/pacote-utl-file-do-oracle/13129
Clique aqui para fazer login e interagir na Comunidade :)