sábado, 16 de janeiro de 2010
quarta-feira, 13 de janeiro de 2010
Gravando arquivo com dados de uma tabela
-- Gravando arquivo com dados de uma tabela
serveroutput on
BEGIN
DECLARE
arquivo_saida UTL_FILE.FILE_TYPE;
vsqlerrm Varchar2(1024):=null ;
BEGIN
-- abre arquivo
arquivo_saida := Utl_File.FOpen('/utl_file/log', 'arquivox.txt','W',9192); -- 'W'); --
-- abre um cursor com os dados a serem gravados
for c in (select substr(a.coluna,1,37)||' '||substr(a.coluna,39) coluna FROM LITXLS a )
loop
-- escreve no arquivo
Utl_File.put_line(arquivo_saida, c.coluna );
end loop;
-- fecha arquivo
Utl_File.FClose(arquivo_saida);
EXCEPTION -- tratamento de alguma EXCEPTION
WHEN UTL_FILE.INVALID_OPERATION THEN
Dbms_Output.Put_Line('Operação inválida no arquivo.'||Sqlerrm);
UTL_File.Fclose(arquivo_saida);
WHEN UTL_FILE.WRITE_ERROR THEN
Dbms_Output.Put_Line('Erro de gravação no arquivo.'||Sqlerrm);
UTL_File.Fclose(arquivo_saida);
WHEN UTL_FILE.INVALID_PATH THEN
Dbms_Output.Put_Line('Diretório inválido.'||Sqlerrm);
UTL_File.Fclose(arquivo_saida);
WHEN UTL_FILE.INVALID_MODE THEN
Dbms_Output.Put_Line('Modo de acesso inválido.'||Sqlerrm);
UTL_File.Fclose(arquivo_saida);
WHEN Others THEN
Dbms_Output.Put_Line('Problemas na geração do arquivo.'||Sqlerrm);
UTL_File.Fclose(arquivo_saida);
END;
END;
/
