Como renomear no UTL FILE

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
mariogus
Rank: Analista Sênior
Rank: Analista Sênior
Mensagens: 157
Registrado em: Sex, 30 Nov 2007 1:17 pm
Localização: Porto Alegre - RS

Como posso alterar o nome do arquivo com um sufixo de OK após realizar o update ???

Selecionar tudo

v_forn_arq   := 'For'||to_char(sysdate,'ddmmrrrr')||'9999999.ret';

     ------ Open File---
     hdr_arq := UTL_FILE.fopen('DIR', 
                               v_forn_arq,
                               'R');
     ---- Executa leitura do arquivo -------
     BEGIN
        ---
        LOOP
          UTL_FILE.get_line(hdr_arq, v_forn_buffer);
          v_tipo_forn := itg_splitstring(v_forn_buffer, ';', 24); 
          --Busca o tipo de fornecedor
          IF v_tipo_forn ='J' THEN                       
              --JURIDICA  
              v_cpf := LPAD(TRIM(itg_splitstring(v_forn_buffer, ';', 5)),14,0);
              --          
              BEGIN 
                   UPDATE corp.pessoas
                      SET       
                        cd_forncedor_onf = LPAD(TRIM(itg_splitstring(v_forn_buffer, ';', 2)),5,0),
                        dt_atualizacao   = sysdate
                   WHERE LPAD(TRIM(nr_cpf),14,'0')=v_cpf;
                   COMMIT;  
diegolenhardt
Moderador
Moderador
Mensagens: 1177
Registrado em: Qui, 15 Out 2009 10:28 am
Localização: Recife

Cara, tem que cuidar com o caso de tentar renomear para .OK e já ter um arquivo com esse nome, vai gerar uma exception,

If (Sql%RowCount = 1) Then
Begin --Tratei exceção neste caso, pois pode haver a situação de reimportar um arquivo,
--então o rename irá falhar, pelo fato de já existir um arquivo com este nome.
Utl_file.FRename('BARRAGENS', I.Arquivo, 'BARRAGENS', Replace(I.Arquivo,'.JPG','.OK'));

Exception
When Utl_File.Rename_Failed Then
Null; --Futuramente logar esta situação.
End;
End if;
Commit;
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante