UTL_FILE - Ajuda
Ola.. Por favor, preciso de uma ajuda.. Estou tentando gerar um arquivo .txt a partir de uma Query do Oracle utilizando o UTL.File .. Aparentemente, de acordo com alguns fóruns que procurei, esta tudo certo, mas mesmo assim não me gera o arquivo. Aparece a mensagem "Diretório invalido". Alguém poderia me ajudar?
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
Curtidas 0
Melhor post
Roberto Spernega
31/05/2017
Boa tarde Felipe,
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.
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.
GOSTEI 1
Mais Respostas
Daniel Araújo
31/05/2017
Boa tarde Felipe!
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!
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
Felipe
31/05/2017
Era esse artigo que estava seguindo mesmo. E realmente tinha esquecido de dar permissão para meu usuário gravar o arquivo, porem agora ele não esta gerando erro, porem também não esta gravando o arquivo. Apresenta apenas a mensagem "Procedimento PL/SQL concluído com sucesso." e não aparece nada la na pasta.
GOSTEI 0
Roberto Spernega
31/05/2017
Bom dia,
Tem um artigo muito bom , deve te ajudar.
https://www.devmedia.com.br/pacote-utl-file-do-oracle/13129
Tem um artigo muito bom , deve te ajudar.
https://www.devmedia.com.br/pacote-utl-file-do-oracle/13129
GOSTEI 0