quarta-feira, 11 de novembro de 2009

grava arquivo

PROCEDURE GRAVA_ARQUIVO (
                             vPath        IN Varchar2:=
'/utl_file/log'
                           , vNomeArquivo IN Varchar2:= null
                           , vConteudo    IN Clob:=
'comteudo'      
             )
is
      arquivo_saida     UTL_FILE.FILE_TYPE;
      vsqlerrm      Varchar2(
1024):=null ;
      vNomeArquivo2 Varchar2(
255):='';
Begin
     DBMS_APPLICATION_INFO.set_client_info(
'ADM UTIL GRAVA_ARQUIVO');
    
     iValor := iValor +
1;
    
     vNomeArquivo2 := vNomeArquivo;
     If (vNomeArquivo2 is null) Then 
     vNomeArquivo2 := TO_CHAR(sysdate,
'YYYYMMDD_hh24_mi_ss')||'_'||to_char(iValor)||'.html';
     End If;                    
      
     arquivo_saida := Utl_File.FOpen(vPath, vNomeArquivo2,
'w');
     Utl_File.Put (arquivo_saida, vConteudo );
     Utl_File.FClose(arquivo_saida);
     
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 GRAVA_ARQUIVO;

Nenhum comentário: