문서를 영문으로 보려면 영문 확인란을 선택하세요. 마우스 포인터를 텍스트 위로 이동시켜 팝업 창에서 영문 텍스트를 표시할 수도 있습니다.
번역
영문

string 함수(XQuery)

문자열로 표현된 $arg의 값을 반환합니다.

fn:string() as xs:string
fn:string($arg as item()?) as xs:string

$arg

노드 또는 원자 값입니다.

  • $arg가 빈 시퀀스인 경우 길이가 0인 문자열이 반환됩니다.

  • $arg가 노드인 경우 함수는 문자열 값 접근자를 사용하여 가져온 노드의 문자열 값을 반환합니다. 이 내용은 W3C XQuery 1.0 및 XPath 2.0 데이터 모델 사양에 정의되어 있습니다.

  • $arg가 원자 값인 경우 함수는 특별히 언급된 경우를 제외하고는 xs:string, $arg로 캐스팅된 식에 의해 반환되는 것과 같은 문자열을 반환합니다.

  • $arg 유형이 xs:anyURI인 경우 URI는 특수 문자를 이스케이프 처리하지 않고 문자열로 변환됩니다.

  • 이 구현에서 인수가 없는 fn:string()은 상황별 조건자의 컨텍스트에서만 사용할 수 있습니다. 특히 사용 시 대괄호([])로 묶어야 합니다.

이 항목에서는 AdventureWorks 데이터베이스의 다양한 xml 유형 열에 저장된 XML 인스턴스에 대한 XQuery 예를 제공합니다.

1.문자열 함수 사용

다음 쿼리는 <ProductDescription> 요소의 <Features> 자식 요소 노드를 검색합니다.

SELECT CatalogDescription.query('
declare namespace PD="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelDescription";
 /PD:ProductDescription/PD:Features
')
FROM Production.ProductModel
WHERE ProductModelID=19

다음은 결과의 일부입니다.

<PD:Features xmlns:PD="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelDescription">
   These are the product highlights. 
   <p1:Warranty xmlns:p1="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelWarrAndMain">
    <p1:WarrantyPeriod>3 years</p1:WarrantyPeriod>
    <p1:Description>parts and labor</p1:Description>
   </p1:Warranty>
       ...
</PD:Features>

string() 함수를 지정하면 지정된 노드의 문자열 값이 수신됩니다.

SELECT CatalogDescription.query('
declare namespace PD="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelDescription";
 string(/PD:ProductDescription[1]/PD:Features[1])
')
FROM Production.ProductModel
WHERE ProductModelID=19

다음은 결과의 일부입니다.

These are the product highlights. 
3 yearsparts and labor...  

2.여러 노드에서 문자열 함수 사용

다음 예에서는 XML 인스턴스가 xml 유형의 변수에 할당됩니다. 여러 노드에 string()을 적용한 결과를 보여 주는 쿼리가 지정되어 있습니다.

declare @x xml
set @x = '<?xml version="1.0" encoding="UTF-8" ?>
<!--  This is a comment -->
<root>
  <a>10</a>
just text
  <b attr="x">20</b>
</root>
'

다음 쿼리는 문서 노드의 문자열 값을 검색합니다. 이 값은 모든 해당 하위 항목 텍스트 노드의 문자열 값을 연결하여 형성됩니다.

select @x.query('string(/)')

다음은 결과입니다.

This is a comment 10
just text
 20

다음 쿼리에서는 처리 지침 노드의 문자열 값을 검색합니다. 여기에는 텍스트 노드가 없기 때문에 빈 시퀀스가 결과로 반환됩니다.

select @x.query('string(/processing-instruction()[1])')

다음 쿼리는 주석 노드의 문자열 값을 검색하고 텍스트 노드를 반환합니다.

select @x.query('string(/comment()[1])')

다음은 결과입니다.

This is a comment 

커뮤니티 추가 항목

추가
표시: