Leitura/Gravação de arquivos texto Sexta-feira, 04 de Fevereiro de 2005 Para manipular arquivos texto é necessário, antes de tudo, configurar o diretório de trabalho. Para isso, deve-se colocar, no arquivo de configurações do Oracle(normalmente init.ora), o parâmetro utl_file_dir o caminho que o Oracle irá utilizar para leituras de arquivos texto. Ex1: utl_file_dir = c: emp, desta forma, apenas o diretório "temp" será vizualizado no momento de abrir um arquivo para leitura ou gravação. Ex2: utl_file_dir = * , neste outro exemplo, a raiz do disco aonde está o Oracle_Home será disponibilizada, ou seja, todo o disco rígido poderá ser acessado para ler e gravar arquivos. Leitura de arquivos Abaixo segue um exemplo simples, que abre para leitura um arquivo texto, read.txt, localizado em c:arquivos, e apresenta na tela todo seu conteúdo: set serveroutput on size 1000000; declare v_arquivo utl_file.file_type; v_linha varchar2(1000); begin v_arquivo := utl_file.fopen('c:arquivos', 'read.txt', 'r'); loop begin utl_file.get_line(v_arquivo, v_linha); dbms_output.put_line(v_linha); exception when no_data_found then utl_file.fclose(v_arquivo); exit; end; end loop; end; Gravação de arquivos Abaixo segue um exemplo simples, que abre para leitura o arquivo read.txt e grava todo seu conteúdo em outro arquivo que foi aberto apenas para gravação chamado write.txt: declare v_arquivo1 utl_file.file_type; v_arquivo2 utl_file.file_type; v_linha varchar2(1000); begin v_arquivo1 := utl_file.fopen('c:arquivos', 'read.txt', 'r'); v_arquivo2 := utl_file.fopen('c:arquivos', 'write.txt', 'w'); loop begin utl_file.get_line(v_arquivo1, v_linha); utl_file.put_line(v_arquivo2, v_linha); exception when no_data_found then utl_file.fclose(v_arquivo1); utl_file.fclose(v_arquivo2); exit; end; end loop; end;