I'm having trouble retrieving the value of an xml node from a field and need help ...
The table structure is:
--Table Pessoa
Id int
Nome varchar(max)
DtNascimento date
Xml_Detalhes XML
My xml looks like this:
(1) - Registro de um dos exemplos
<incluir_pessoa xmlns="..." xmlns:ds="..." xmlns:xsi="..." xsi:schemaLocation="...">
<pessoa>
<detalhes>
<nome>FULANO BETA</nome>
<data_nascimento>1991-11-07</data_nascimento>
<detalhes>
<pessoa>
</incluir_pessoa>
(2) - Registro de um dos exemplos
<incluir_pessoa xmlns="..." xmlns:ds="..." xmlns:xsi="..." xsi:schemaLocation="...">
<pessoa>
<detalhes>
<nome>CICLANO CUNHA</nome>
<data_nascimento>1991-02-20</data_nascimento>
<detalhes>
<pessoa>
</incluir_pessoa>
And my query looks like this:
SELECT
P.Id,
P.DtNascimento,
P.Xml_Detalhes,
d.n.value('(nome)[1]','varchar(max)') as NomeXML
FROM
Pessoa P
OUTER APPLY
C.consumoXmlEnvio.nodes('/incluir_pessoa/pessoa/detalhes') as d(n)
and the return comes as:
Id | Nome | DtNascimento | Xml | NomeXML
1 | Fulano | 1991-11-07 | <incluir_pessoa... | NULL
2 | Ciclano | 1993-02-20 | <incluir_pessoa... | NULL
and should come as:
Id | Nome | DtNascimento | Xml | NomeXML
1 | Fulano | 1991-11-07 | <incluir_pessoa... | FULANO BETA
2 | Ciclano | 1993-02-20 | <incluir_pessoa... | CICLANO CUNHA
how to return the xml name?