Fórum UTL_FILE - Ajuda #581981
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
Curtir tópico
+ 0Post 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
Gostei + 1
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!
Gostei + 1
31/05/2017
Felipe
Gostei + 0
01/06/2017
Roberto Spernega
Tem um artigo muito bom , deve te ajudar.
https://www.devmedia.com.br/pacote-utl-file-do-oracle/13129
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)