Banco de Dados - SQL Server

SQL Server 2005 - XML Data type - Parte I

Uma das grandes novidades do SQL Server 2005 é o suporte nativo a XML( eXtensible Markup Language) , poderemos agora ter colunas do tipo xml, variáveis, parâmetros para procedures e functions e ainda fazer selects com xquery diretamente no xml e ainda unir selects xquery com os comandos selects relacionais.

por Eugênio Spolti



Uma das grandes novidades do SQL Server 2005 é o suporte nativo a XML( eXtensible Markup Language) , poderemos agora ter colunas do tipo xml, variáveis, parâmetros para procedures e functions e ainda fazer selects com xquery diretamente no xml e ainda unir selects xquery com os comandos selects relacionais.

Estes são só algumas das opções que este novo tipo de dados irá nos proporcionar. Iremos ver todos as opçoes que serão separados em vários artigos. Nesta primeira parte iremos ver as opções de criação de tabelas com o tipo xml e como poderemos selecionar estes dados.

Vamos então criar uma tabela com um tipo xml.

Podemos verificar na figura acima como é facil a criação e inserção de dados em uma coluna xml. Somente como informação, os tipos de dados XML não podem exceder 2GB de tamanho.

Como a nossa coluna Funcionario ainda não tem um schema XSD (Schema definition language ) para validar o xml que está recebendo, qualquer xml bem formado poderá ser incluído, somente para fazer um teste utilizaremos o insert abaixo para verificar este detalhe.

Os XML Schemas serão o tema do nosso próximo artigo, só para não deixarmos o assunto tão vago, os schemas são uma forma de validação para o contéudo do xml que poderá ser inserido na coluna xml, só para exemplificar-mos , caso existi-se um XML schema para a coluna Funcionario, o insert que contém o XML de um Livro, iria falhar.

Continuando, iremos ver agora o método query() do tipo xml , este é um dos cinco métodos que o tipo XML possui, e nos fornece uma opção de consulta utilizando xQuery.

select Funcionario.query("/Funcionario/Nome") from TesteXML 

O método Query nos retorna uma instância de um xml, analizando o select acima , estamos selecionandos todos os nodes Nome que estão abaixo do nodo principal que é Funcionario. O resultado deste select podemos verificar na figura abaixo.

Como podemos ver na figura, temos um registro em branco, que é do teste que fizemos inserindo um xml de um Livro, como nosso xQuery não achou nenhum nodo chamado Funcionario neste registro , então o resultado foi uma coluna em branco.

Só para terminar-mos nosso exemplo , como inserimos um xml de um livro , e neste xml também temos um nodo chamado Nome, mas que está abaixo de um nodo chamado livro, podemos modificar então nosso xQuery, para ignorar o nodo principal e selecionar todos os registros que possuam o nodo Nome dentro do xml.

O que mostramos neste breve artigo, é só a ponta do Iceberg que é o Data Type XML dentro do SQL Server 2005. No próximo artigo iremos falar sobre os XML Schemas e dos outros métodos que o tipo XML possui .

Até a próxima

Eugênio Spolti

Eugênio Spolti

Eugênio Spolti - MCP em SQL Server 2000 e trabalha com banco de dados a 5 anos na Serviplan Serviços de Planejamento, empresa que presta serviços de Planejamento e BI.