Como Ler e Gravar arquivos textos pelo Oracle 10g ou superior

Soma no prescription USA FedEx shipping A idéia desse artigo é efetuar uma leitura e/ou gravação de um arquivo do tipo texto em um diretorio no servidor Oracle.

order soma cash on delivery Os comandos necessários para o desenvolvimento de rotinas para ler e escrever dados em arquivos do tipo texto encontram-se na package-padrão UTL_FILE, disponível a partir da versão 7.3 do Oracle. Porém sua implementação estará sujeita às permissões do sistema operacional e do banco de dados, sendo que os diretórios que podem ser acessados para leitura e gravação devem ser concedidos ao criar um directory.

Soma No Prescription Overnight COD Delivery Primeiramente temos que entender um detalhe importante, o arquivo a ser lido e/ou gravado deverá estar no servidor Oracle, e não no cliente que estará chamando o procedimento. Não é possivel gerar o arquivo ou ler na maquina client, uma sugestão é após criar utilizar o smtp para envia-lo por email [Envio de E-mail através de PL/SQL].

http___www.bigleaguekickball.com_about_ buy Soma with no rx, purchase Soma COD Vamos para os detalhes importantes antes de criar o nosso procedimento:

Servidor Oracle em Linux
IP: 192.168.1.100

Diretorio no servidor que estará os arquivos:
/arquivos/oracle/

Somente o usuário oracle tem privilegios de ler e gravar no diretorio /arquivos/oracle no Sistema Operacional

No Oracle devemos criar um directory ligando o diretorio no Sistema Operacional.
Criado a partir do usuário system do oracle

SQL> show user
USER is "SYSTEM"
SQL> create directory ARQSYS as '/arquivos/oracle/';
Directory created.

Criando esse directory agora deve ser concedido o privilegio de gravar ou ler arquivos abaixo deste diretório para usuário(owner) que irá chamar a rotina.


SQL> grant read,write ON DIRECTORY ARQSYS to rafa;

Logado com o meu usuario rafa no banco de dados vamos a rotina a gravar um arquivo texto no diretorio /arquivos/oracle/

DECLARE
    arquivo_saida                    UTL_File.File_Type;
    Cursor Cur_Linha is select to_char(sysdate,'dd/mm/yyyy hh24:mi:ss "seculo" CC') DATA from dual;

BEGIN
    arquivo_saida := UTL_File.Fopen('ARQSYS ','teste.txt', 'W');
    For Reg_Linha in Cur_linha Loop
        UTL_File.Put_Line(arquivo_saida, Reg_linha.Data);
    End Loop;
    UTL_File.Fclose(arquivo_saida);
    Dbms_Output.Put_Line('Arquivo gerado com sucesso.');
EXCEPTION
      WHEN UTL_FILE.INVALID_OPERATION THEN
               Dbms_Output.Put_Line('Operação inválida no arquivo.');
               UTL_File.Fclose(arquivo_saida);
      WHEN UTL_FILE.WRITE_ERROR THEN
               Dbms_Output.Put_Line('Erro de gravação no arquivo.');
               UTL_File.Fclose(arquivo_saida);
      WHEN UTL_FILE.INVALID_PATH THEN
               Dbms_Output.Put_Line('Diretório inválido.');
               UTL_File.Fclose(arquivo_saida);
      WHEN UTL_FILE.INVALID_MODE THEN
               Dbms_Output.Put_Line('Modo de acesso inválido.');
               UTL_File.Fclose(arquivo_saida);
      WHEN Others THEN
               Dbms_Output.Put_Line('Problemas na geração do arquivo.');
               UTL_File.Fclose(arquivo_saida);
END;

Estamos utilizando a function utl_file.fopen com os seguintes parametros

UTL_FILE.FOPEN (
   location     IN VARCHAR2,
   filename     IN VARCHAR2,
   open_mode    IN VARCHAR2,
   max_linesize IN BINARY_INTEGER) 
  RETURN file_type;

Onde o Doctor shopping for Soma prescription location é a localização / diretorio que encotra-se o arquivos.
http___www.bigleaguekickball.com_category_press_ buy no perscription soma filename é o nome do arquivo sem o path do diretorio.
Soma overnight fed ex no prescription open_mode especifica o modo que será lido ou gravado o arquivo:
r — read text
w — write text
a — append text
rb — read byte mode
wb — write byte mode
ab — append byte mode
Se você tentar abrir o arquivo especificando ‘a’ ou ‘ab’ para o open_mode mas o arquivo não existir, o arquivo será criado e gravado.
http___www.bigleaguekickball.com_category_press_ buy soma shipped ups max_linesize Máximo de caracteres por linha, incluindo o caracter de nova linha (minimo de 1 e máximo de 32767). default é 1024.

OBS.: Lembrando que o arquivo está salvo no servidor Oracle (192.168.1.100) no diretorio do linux /arquivos/oracle/

Fonte de referencia: UTL_FILE 10g

%name Como Ler e Gravar arquivos textos pelo Oracle 10g ou superior

Autor: Rafael Stoever

Soma fast delivery no doctors Bacharel em Sistema de Informação pela Uniasselvi, atualmente cursando Gerenciamento de Projetos em TI pela Pós Graduação Uniasselvi. Atuo como Analista de suporte http___www.bigleaguekickball.com_category_press_ cheap soma overnight saturday delivery a banco de dados – DBA pela Lumina Serviços em TI residente de Blumenau/ SC, soma without prescription COD OPN Certified Specialist, Certificado OCP 10g/11g/12c, OCE RAC10g e Linux 10g. Conhecimentos em Microsoft SqlSever, Mysql e programação web (php,asp).