TransWikia.com

Gravação Arquivo Oracle SQL

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;

One Answer

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

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP