XML No SQL Server
Exemplo simples de navegação dentro de um XML utilizando o SQL Server (versão que utilizo é 2012).
Procurei muito por uma solução simples para resolver um problema que era: Ler do disco um XML para uma variável no SQL Server, como se estivesse lendo de uma tabela, para posteriormente utilizar os dados dando os tratamentos necessários a cada atributo.
Não encontrei nada que fosse suficientemente simples e de fácil entendimento mas, depois de muita pesquisa, bolei uma forma bem simples e espero que ajude a quem necessitar, conforme segue abaixo:
No exemplo possuo um XML com os 3 primeiros meses do ano com seu número e nome e preciso listar ambos atributos.
declare @xml xml = '<myxml>
<idx>1</idx>
<description>JANUARY</description>
<idx>2</idx>
<description>FEBRUARY</description>
<idx>3</idx>
<description>MARCH</description>
</myxml>'
declare @count int, @counter int=1
SELECT @count = count(*) FROM @xml.nodes('/myxml/idx') x(y);
while @counter <= @count begin
SELECT @xml.query('/myxml/idx[sql:variable("@counter")]/text()') idx,
@xml.query('/myxml/description[sql:variable("@counter")]/text()') dsc;
set @counter = @counter + 1;end
Discussão (0)
Carregando comentários...