Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Область применения:SQL Server
Возвращает локальную часть имени $arg как xs:string строку нулевой длины или имеет лексическую форму xs:NCName. Если аргумент не указан, по умолчанию используется узел контекста.
Синтаксис
fn:local-name() as xs:string
fn:local-name($arg as node()?) as xs:string
Аргументы
$arg
Имя узла, часть которого извлекается с локальным именем.
Замечания
В SQL Server
fn:local-name()без аргумента можно использовать только в контексте предиката, зависящей от контекста. Точнее, ее использование возможно только внутри квадратных скобок ([ ]).Если аргумент указан и представляет собой пустую последовательность, функция возвращает строку нулевой длины.
Если целевой узел не имеет имени, так как это узел документа, комментарий или текстовый узел, функция возвращает строку нулевой длины.
Примеры
В этой статье приведены примеры XQuery для экземпляров XML, хранящихся в различных столбцах типов XML в базе данных AdventureWorks.
А. Получение локального имени конкретного узла
Следующий запрос обращается к нетипизированному экземпляру XML. Выражение запроса local-name(/ROOT[1]) получает локальную часть имени указанного узла.
DECLARE @x AS XML;
SET @x = '<ROOT><a>111</a></ROOT>';
SELECT @x.query('local-name(/ROOT[1])');
-- result = ROOT
Следующий запрос обращается к столбцу «Instructions» типа xml таблицы ProductModel. Выражение local-name(/AWMI:root[1]/AWMI:Location[1]) возвращает локальное имя Location указанного узла.
SELECT Instructions.query('
declare namespace AWMI="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelManuInstructions" ;
local-name(/AWMI:root[1]/AWMI:Location[1])') AS Result
FROM Production.ProductModel
WHERE ProductModelID = 7;
-- result = Location
B. Использование локального имени без аргумента в предикате
Следующий запрос указан в столбце "Инструкции", типизированном xml-столбце таблицы ProductModel. Выражение возвращает все дочерние элементы <root> элемента элемента, локальное имя которого является "Location"частью QName. Функция local-name() указана в предикате и не имеет аргументов, используемых функцией.
SELECT Instructions.query('
declare namespace AWMI="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelManuInstructions" ;
/AWMI:root//*[local-name() = "Location"]') AS Result
FROM Production.ProductModel
WHERE ProductModelID = 7;
Запрос возвращает все дочерние <Location> элементы <root> элемента элемента.