Stack Overflow em Português Asked by Paulo Camargo on November 13, 2021
Bom dia,
Sou iniciante em Oracle PL/SQL, e criei o script abaixo para gravar o resultado de uma consulta em arquivo txt, executa sem erros porem não grava o arquivo, alguém sabe o que poderia estar acontecendo ? Onde estou errando ?
DECLARE arquivo_saida
UTL_File.File_Type; Cursor Cur_Linha is Select OWNER||' '||TABLE_NAME as Linha From All_Tables Where Owner Like'SYS%';
BEGIN arquivo_saida := UTL_File.Fopen('C:teste','arquvo.txt','w');
For Reg_Linha in Cur_linha Loop
UTL_File.Put_Line(arquivo_saida, Reg_linha.linha);
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;
Conforme comentei na resposta do @motta, faltou a criação do diretório de saída com o comando abaixo:
CREATE DIRECTORY DIRETORIO AS 'C:DIRETORIO';
Então substitui-se o caminho pela variável:
BEGIN arquivo_saida := UTL_File.Fopen('DIRETORIO','arquvo.txt','w');
Answered by Paulo Camargo on November 13, 2021
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP