XML com SQL Server 2000 – Parte 03


Anderson Haertel Rodrigues


 


Como importar dados XML para as tabelas no SQL Server 2000


O DTS é uma excelente ferramenta (ETL) para exportação, importação, transformação e consolidação de dados entre diferentes fontes, mas deixa a desejar quando se trata de importação e exportação de dados XML (até a versão 2000 do SQL Server). Existem algumas formas de importação de dados XML para tabelas SQL Server 2000 (UpdateGrams, integração do SQL Server com IIS ou OpenXML), mas veremos essa funcionalidade com o comando OPENXML.


Um exemplo de utilização do comando OPENXML pode ser visualizado na Listagem 12. Os comentários em destaque na listagem encontram-se na Tabela 1.


 


Listagem 12. Utilizando o comando OpenXML.


21-07-2007pic01.JPG 


Tabela 1. Observações sobre os comandos executados na Listagem 12.




























Identificação


Comentário


(1)


A variável @hDoc servirá como Handle de identificação do documento xml. Deve ser do tipo int (integer).


(2)


A variável @sDocXML será responsável pelo armazenamento do documento XML. Seu data-type pode ser char/Nchar/archar/Nvarchar/text/Ntext.


(3)


Esse é o documento XML que se deseja armazenar.        


(4)


A procedure sp_xml_preparedocument é responsável pela “preparação” do documento, e irá conferir sua sintaxe (parser). Se o documento estiver de acordo com a sintaxe XML, o código será armazenado na memória do SQL Server.


(5)


O segundo parâmetro do comando OpenXML é o elemento inicial a partir do qual os dados devem ser extraídos. /ROOT/Customers sinaliza que desejamos listar o elemento Customers e seus descendentes.


(6)


A cláusula WITH formata o dado XML que está sendo extraído para um data-type SQL Server.


(7)


Como o documento é armazenado no cache interno do SQL Server 2000, ao final do processo deve-se liberar a memória utilizada com a execução da procedure sp_xml_removedocument.


 


Ao executar o script da Listagem 12 no database Northwind, estaremos incluindo dois clientes na tabela Customers (para CustomerId=AHR0 e CustomerId=AHR1) e dois pedidos na tabela Orders (ambos para o CustomerId=AHR0). Para CustomerId=AHR1 não foram incluídos pedidos na tabela Orders.


O tipo de dado XML no SQL Server 2005


A utilização do XML foi bastante trabalhada na versão 2005. Pode-se criar, por exemplo, colunas com data-type XML:



21-07-2007pic02.JPG 


 


Mas as novas features não param por aí. O tipo de dados XML aparece também em índices, variáveis, parâmetros, etc.


Conclusão


Os exemplos dessa matéria demonstram a sintaxe da cláusula FOR XML e as diferentes formas de extrairmos os dados de uma tabela. Vimos também como importar textos XML para tabelas SQL Server 2000 e ainda uma pequena demonstração do poder do XML com o SQL Server 2005. Este será tema de um outro artigo.