acessando dados nas colunas XML do SQL Server
O SQL Server permite armazenar dados XML em colunas definidas como tipos de dados XML. A recuperação de dados específicos dessas colunas requer consultas especializadas.
Digamos que você tenha uma coluna XML chamada "Papunos" com esta estrutura:
Alpha Beta Gamma
para encontrar linhas contendo um papel específico, use esta consulta:
SELECT
Roles
FROM
MyTable
WHERE
Roles.value('(/root/role)[1]', 'varchar(max)') LIKE 'StringToSearchFor'
isso usa ROLS.VALUE
para extrair o primeiro valor RUPE
elemento, convertendo -o em varchar (max)
. Isso permite a busca de papéis específicos.
Se sua coluna ainda não é um tipo de dados XML, use cast
para convertê -lo antes de consultar.
A consulta também pode segmentar atributos XML. Por exemplo, com este XML na coluna "Data":
...
SELECLE
[dados]
DE
[DBO]. [CodesystemCodes_data]
ONDE
Cast ([Data] como xml) .Value ('(/utilitários.codesystems.codesystemcodes/@codesystem) [1],' varchar (max) ') =' 2 '
SELECT
[data]
FROM
[dbo].[CodeSystemCodes_data]
WHERE
CAST([data] AS XML).value('(/Utilities.CodeSystems.CodeSystemCodes/@CodeSystem)[1]', 'varchar(max)') = '2'
Consultando os campos XML usando t-sql
SELECT *
DE
(
Selecione
pref.value ('(text ()) [1]', 'varchar (32)') como rolename
DE
MyTable
Cross Apply
ROUNS.NODES ('/raiz/função') como funções (pref)
) Como resultado
ONDE
Rolename como '%ga%'
Essa abordagem permite extração mais eficiente e direcionada de dados das colunas XML no SQL Server.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3