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)