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