Como transformar dados XML em tabelas SQL

Até recentemente, quando se pensa sobre a relação entre SQL e XML, a ênfase tem sido na conversão de dados da tabela SQL em XML para torná-lo acessível na Internet. SQL: 2008 abordou o problema complementar de converter dados XML em tabelas SQL para que ele possa ser facilmente consultados, utilizando instruções SQL padrão. o XMLTABLE pseudo-função executa esta operação. A sintaxe para XMLTABLE é:

XMLTABLE ([namespace-declaração,] XQuery-expressão [PASSANDO-lista argumento] colunas XMLtbl-column-definições

onde a lista de argumento é:

valor-expressão como identificador

e XMLtbl-column-definições é uma lista separada por vírgulas de definições de coluna, que pode conter:

column-name PARA ordinalidade

e / ou:

nome da coluna tipo de dados [POR REF | POR VALOR] [default-cláusula] [PATH XQuery-expressão]

Aqui está um exemplo de como você pode usar XMLTABLE para extrair dados de um documento XML em um pseudo-tabela SQL. Um pseudo-tabela não é persistente, mas em todos os outros aspectos, ele se comporta como uma tabela SQL regular. Se você quiser torná-lo persistente, você pode criar uma tabela com uma CREATE TABLE declaração e, em seguida, inserir os dados XML para a tabela recém-criada.

clientphone SELECT. * FROMclients_xml, XMLTABLE ( 'por US $ m em $ col / clientreturn $ m'PASSING clients_xml.client AS "col" colunas "NomeCliente" caráter (30) PATH' NomeCliente "," Telefone "CARÁTER (13) PATH ' telefone ') AS clientphone

Quando você executa esta instrução, você vê o seguinte resultado:

NomeCliente Telefone ------------------------------ ------------- Abe Abelson (714) 555-1111Bill Bailey (714) 555-2222Chuck Madeira (714) 555-3333 (3 linhas em clientphone)

menu