Pular para o conteúdo

O Grande Espetáculo do UTL_FILE no Oracle PL/SQL

O Grande Espetáculo do UTL_FILE no Oracle PL/SQL

Introdução ao UTL_FILE

Prepare-se para a grande tenda do Oracle PL/SQL, onde o UTL_FILE é a estrela principal! Este pacote é o mestre de cerimônias quando se trata de ler e escrever arquivos. Não é apenas um truque de mágica, é pura habilidade técnica!

Exemplos Práticos de Utilização com Simulação de Execução

O Número de Abertura com Criação de Arquivos
DECLARE
  v_file_handler UTL_FILE.FILE_TYPE;
BEGIN
  v_file_handler := UTL_FILE.FOPEN('DIR_EXEMPLO', 'novo_arquivo.txt', 'W');
  UTL_FILE.PUT_LINE(v_file_handler, 'Este é o início de um grande espetáculo!');
  UTL_FILE.FCLOSE(v_file_handler);
  DBMS_OUTPUT.PUT_LINE('Arquivo novo_arquivo.txt criado com sucesso.');
END;
/

Resultado

Arquivo novo_arquivo.txt criado com sucesso.
Abrindo o Circo
DECLARE
  v_file_handler UTL_FILE.FILE_TYPE;
BEGIN
  v_file_handler := UTL_FILE.FOPEN('DIR_EXEMPLO', 'exemplo.txt', 'W');
  UTL_FILE.PUT_LINE(v_file_handler, 'Bem-vindo ao espetáculo dos arquivos!');
  UTL_FILE.FCLOSE(v_file_handler);
  DBMS_OUTPUT.PUT_LINE('Arquivo exemplo.txt aberto e escrito com sucesso.');
END;
/

Resultado

Arquivo exemplo.txt aberto e escrito com sucesso.
O Grande Truque de Leitura
DECLARE
  v_line VARCHAR2(200);
  v_file_handler UTL_FILE.FILE_TYPE;
BEGIN
  v_file_handler := UTL_FILE.FOPEN('DIR_EXEMPLO', 'exemplo.txt', 'R');
  LOOP
    BEGIN
      UTL_FILE.GET_LINE(v_file_handler, v_line);
      DBMS_OUTPUT.PUT_LINE(v_line);
    EXCEPTION
      WHEN NO_DATA_FOUND THEN
        EXIT;
    END;
  END LOOP;
  UTL_FILE.FCLOSE(v_file_handler);
END;
/

Resultado

Bem-vindo ao espetáculo dos arquivos!
O Desafio do Arquivo Grande
DECLARE
  v_file_handler UTL_FILE.FILE_TYPE;
  v_buffer VARCHAR2(32767);
BEGIN
  v_file_handler := UTL_FILE.FOPEN('DIR_EXEMPLO', 'arquivo_grande.log', 'R');
  LOOP
    BEGIN
      UTL_FILE.GET_LINE(v_file_handler, v_buffer, 32767);
      DBMS_OUTPUT.PUT_LINE(v_buffer);
    EXCEPTION
      WHEN UTL_FILE.READ_ERROR THEN
        EXIT;
    END;
  END LOOP;
  UTL_FILE.FCLOSE(v_file_handler);
END;
/

Resultado

Linha 1
Linha 2
Linha 3
Linha 4
Linha 5
Linha 6
Linha 7
Linha 8
Linha 9
Linha 10
Linha 11
Linha 12
Linha 13
A Dança dos Arquivos Temporários
DECLARE
  v_file_temp UTL_FILE.FILE_TYPE;
BEGIN
  v_file_temp := UTL_FILE.FOPEN('DIR_TEMP', 'temp.txt', 'W', 32767);
  UTL_FILE.PUTF(v_file_temp, 'Este é um arquivo temporário com a data: %s', TO_CHAR(SYSDATE, 'DD-MM-YYYY'));
  UTL_FILE.FCLOSE(v_file_temp);
  DBMS_OUTPUT.PUT_LINE('Arquivo temp.txt criado com a data atual.');
END;
/

Resultado

Arquivo temp.txt criado com a data atual.
O Finale com Renomeação e Exclusão
DECLARE
  v_file_name VARCHAR2(100) := 'exemplo.txt';
  v_file_rename VARCHAR2(100) := 'exemplo_renomeado.txt';
BEGIN
  UTL_FILE.FRENAME('DIR_EXEMPLO', v_file_name, 'DIR_EXEMPLO', v_file_rename, TRUE);
  DBMS_OUTPUT.PUT_LINE('Arquivo ' || v_file_name || ' renomeado para ' || v_file_rename || '.');
  UTL_FILE.FREMOVE('DIR_EXEMPLO', v_file_rename);
  DBMS_OUTPUT.PUT_LINE('Arquivo ' || v_file_rename || ' removido com sucesso.');
END;
/

Resultado

Arquivo exemplo.txt renomeado para exemplo_renomeado.txt.
Arquivo exemplo_renomeado.txt removido com sucesso.

Conclusão

E assim, senhoras e senhores, terminamos nossa apresentação estelar! O UTL_FILE é o verdadeiro artista do Oracle PL/SQL, capaz de criar, ler, escrever e até mesmo fazer arquivos desaparecerem. Não se esqueça de aplaudir!

Referências

Quão útil foi este post ?

Clique em uma estrela para classificar o post

nota média 4.6 / 5. Contagem de votos: 9

Sem votos ! Seja o primeiro a classificar !

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

plugins premium WordPress