Dominar integrações é uma habilidade importante para técnicos que ganham como diretores, seja para fazer troubleshooting ou implementar processos de gestão do negócio.

Nesse contexto, mostrarei como importar e exportar XML no SQL com apenas uma linha de comando, além de converter tabelas do SQL para XML, também com apenas uma linha de comando!

Confira aqui:

Script da aula


------------------------------------------------------------------
-- Como importar arquivos XML no SQL
------------------------------------------------------------------

--------------------------------------------------
-- Requisitos para o teste
--------------------------------------------------
/*
== Salvar em "c:\tmp\pessoas.xml" o seguinte conteúdo:
<pessoas>
	<pessoa id="1">
		<nm>Priscila Laborão</nm>
		<profissao>Recrutadora</profissao>
	</pessoa>
	<pessoa id="2">
		<nm>Tiragato Dakatola</nm>
		<profissao>Mágico</profissao>
	</pessoa>
	<pessoa id="3">
		<nm>Ric Wyndfuck</nm>
		<profissao>Usineiro</profissao>
	</pessoa>
</pessoas>

*/


--------------------------------------------------
-- Arquivo XML => Variável
--------------------------------------------------
declare @x xml = (select bulkcolumn from openrowset (bulk 'c:\tmp\pessoas.xml', single_clob) a) -- single_blob = binário | single_clob = texto
select @x as [xml]


--------------------------------------------------
-- Variável XML => Tabela
--------------------------------------------------
select
	pessoas.pessoa.value('@id[1]', 'int') as id,
	pessoas.pessoa.value('nm[1]', 'varchar(100)') as nm,
	pessoas.pessoa.value('profissao[1]', 'varchar(100)') as profissao
from @x.nodes('pessoas/pessoa') as pessoas(pessoa)


--------------------------------------------------
-- Tabela => Variável XML
--------------------------------------------------
-- Tabela relacional
declare @pessoas table (id int, nm varchar(100), profissao varchar(100))
insert into @pessoas values 
	(1, 'Priscila Laborão', 'Recrutadora'),
	(2, 'Tiragato Dakatola', 'Analista de TI'),
	(3, 'Ric Wyndfuck', 'Usineiro')


-- Conversão de tabela para XML com XML AUTO
select 
	* 
from @pessoas as pessoa 
for xml auto, root('pessoas'), elements

-- Conversão de tabela para XML com XML AUTO, ELEMENTS
select 
	* 
from @pessoas as pessoa 
for xml auto, root('pessoas'), elements

-- Conversão de tabela para XML com XML PATH
select 
	id as "@id", -- @alias define o campo como "atributo" ao invés de "elemento"
	nm, 
	profissao 
from @pessoas 
for xml path ('pessoa'), root ('pessoas')
go


Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *