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