2015-09-18 1 views
0

Я пытаюсь извлечь узел XML из SQL-запроса. У меня есть спецификация отчета XML в одном из столбцов таблицы SQL.Извлечь данные XML-узла SQL-запрос

Я хочу извлечь узел sqlText из XML с помощью SQL-запроса.

Я загрузил XML в раздаточной:
https://www.dropbox.com/sh/28xu7ifu78h6gm0/AACQS24NEjPFO0GXEI9vLuefa?dl=0

Любая помощь будет принята с благодарностью.

ответ

0

Если вы используете XML-документ

declare @xml xml ='<report ....</report>' 
select @xml.value('(/report/queries/query/source/sqlQuery/sqlText)[1]', 'varchar(100)') as [SqlText] 
0

Если предположить, что данные XML хранятся в XML напечатал столбец с именем myXmlColumn в SQL таблице с именем myTable, можно указать пространство имен по умолчанию для XPath с помощью ;WITH XMLNAMESPACES(), например, :

;WITH XMLNAMESPACES(default 'http://developer.cognos.com/schemas/report/8.0/') 
select myTable.myXmlColumn.value('(/report/queries/query/source/sqlQuery/sqlText)[1]' 
           , 'varchar(max)') as sqlText 
0

При наличии более одного узла SQLQuery, после SQL XML query могут быть использованы

SELECT 
    [Query].value('.','varchar(100)') AS QueryText 
FROM @xml.nodes('/report/queries/query/source/sqlQuery/sqlText') Queries([Query]) 
Смежные вопросы