local-name 함수(XQuery)

$arg 이름의 로컬 부분을 길이가 0인 문자열이나 어휘 형식이 xs:NCName인 xs:string으로 반환합니다. 인수를 제공하지 않으면 기본값은 컨텍스트 노드입니다.

구문

fn:local-name() as xs:string
fn:local-name($arg as node()?) as xs:string

인수

  • $arg
    로컬 이름 부분이 검색될 노드 이름입니다.

주의

  • SQL Server에서 인수가 없는 **fn:local-name()**은 상황별 조건자의 컨텍스트에서만 사용할 수 있습니다. 특히 사용 시 대괄호([ ])로 묶어야 합니다.
  • 인수가 제공되었지만 빈 시퀀스인 경우 함수는 길이가 0인 문자열을 반환합니다.
  • 대상 노드가 문서 노드이거나 설명이거나 텍스트 노드이기 때문에 대상 노드의 이름이 없는 경우 함수는 길이가 0인 문자열을 반환합니다.

이 항목에서는 AdventureWorks 데이터베이스의 다양한 xml 유형 열에 저장된 XML 인스턴스에 대한 XQuery 예를 제공합니다. 이러한 각 열에 대한 개요는 AdventureWorks 데이터베이스의 xml 데이터 형식 표시를 참조하십시오.

1. 특정 노드의 로컬 이름 검색

다음은 형식화되지 않은 XML 인스턴스에 대해 지정된 쿼리입니다. local-name(/ROOT[1]) 쿼리 식은 지정한 노드의 로컬 이름 부분을 검색합니다.

declare @x xml
set @x='<ROOT><a>111</a></ROOT>'
SELECT @x.query('local-name(/ROOT[1])')
-- result = ROOT

다음은 ProductModel 테이블의 형식화된 xml 열인 Instructions 열에 대해 지정된 쿼리입니다. 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

2. 조건자에서 인수가 없는 로컬 이름 사용

다음은 ProductModel 테이블의 형식화된 xml 열인 Instructions 열에 대해 지정된 쿼리입니다. 식은 QName의 로컬 이름 부분이 "Location"인 <root> 요소의 요소 자식을 모두 반환합니다. 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

쿼리는 <root> 요소의 모든 <Location> 요소 자식을 반환합니다.

참고 항목

참조

노드 함수

개념

namespace-uri 함수(XQuery)

도움말 및 정보

SQL Server 2005 지원 받기