Criando um arquivo XML com Oracle PL/SQL

[ad#texto]

Escrever um XML utilizando uma procedure PL/SQL é bem simples, salvar este XML em uma pasta qualquer do servidor para intercambio de dados é mais simples ainda, segue um exemplo utilizando CLOB para armazenar o stream que será o arquivo XML e depois o mesmo é criado e salvo na pasta indicada utilizando o pacote DBMS_XSLPROCESSOR.

DECLARE
 varClob     CLOB;
 varString   VARCHAR2(4000);

BEGIN
 -- Abre a instancia do CLOB e o coloca em modo de escrita
 dbms_lob.createtemporary(varClob, TRUE);
 dbms_lob.open(varClob, dbms_lob.lob_readwrite);

 -- Variável string para armazenar parte do XML
 varString := '' ||
              '' ||
              'Este é um teste' ||
              '';

 -- Cria um XML simples de testes, pode ser dado quantos APPEND quiser e
 -- ir montando o XML durante sua rotina PL/SQL
 dbms_lob.writeappend(varClob, length(varString), varString);

 -- Aqui irá de fato gerar o arquivo físico do XML
 DBMS_XSLPROCESSOR.CLOB2FILE(varClob, '/minha/pasta/', 'teste.xml', NLS_CHARSET_ID('UTF8'));

 -- Liberar dados do CLOB da memória
 dbms_lob.close(varClob);
 dbms_lob.freetemporary(varClob);
END;

O exemplo é muito simples e didático, a novidade fica por conta do pacote DBMS_XSLPROCESSOR, no meu caso eu passei os seguintes parâmetros em ordem:

  • Variável CLOB;
  • Pasta de destino do arquivo XML;
  • Nome do arquivo XML;
  • Encoding, no exemplo eu utilizei UTF-8, mas pode ser utilizado qualquer outro.

Note que neste exemplo eu não efetuei nenhum parse, ou seja, o XML é gerado de forma bruta e qualquer anormalidade não será validada e consequentemente um XML inválido, uma solução mais refinada seria efetuar o parse do CLOB para evitar que alguma falha no XML comprometesse um processo posterior.

No próximo artigo irei melhorar este exemplo e mostrar como criar um XML submetendo-o antes de criar um arquivo a um parse.


Descubra mais sobre ViamaisBLOG

Assine para receber nossas notícias mais recentes por e-mail.

Petter Rafael

Desenvolvedor Web atua com as tecnologias Java e PHP apoiadas pelos bancos de dados Oracle e MySQL. Além dos ambientes de desenvolvimento acima possuiu amplo conhecimento em servidores Apache/Tomcat, Photoshop, Arte & Foto, Flash e mais uma dezena de ferramentas e tecnologias emergentes. Atualmente colabora com o Viablog escrevendo sobre programação e tecnologia.
ViamaisBLOG
Privacy Overview

This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.