Importar e exportar XML no SQL

By josue | SQL

importar e exportar xml no sql server

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 


--------------------------------------------------
-- 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


Follow

About the Author

Oi, aqui é o Josué. Sou o criador do site dba-pro.com. Minha missão é ajudar pessoas a usarem o potencial do SQL Server em suas profissões, para que trabalhem felizes e bem remuneradas. Sou consultor e empreendedor, atuando em empresas desde 2000 e dando aulas desde 2004. Adoro SQL, Excel, automatização de processos, finanças e Coaching. Quando não estou trabalhando ou estudando, gosto de leitura, games para PC, filmes, séries e conversas estimulantes.