Fonctions d’accesseur de données - string (XQuery)Data Accessor Functions - string (XQuery)

CETTE RUBRIQUE S’APPLIQUE À : ouiSQL Server (à partir de la version 2012)nonAzure SQL DatabasenonAzure SQL Data WarehousenonParallel Data Warehouse THIS TOPIC APPLIES TO: yesSQL Server (starting with 2012)noAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

Retourne la valeur de $arg représenté sous forme de chaîne.Returns the value of $arg represented as a string.

SyntaxeSyntax


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

ArgumentsArguments

$arg$arg
Nœud ou valeur atomique.Is a node or an atomic value.

NotesRemarks

  • Si $arg est la séquence vide, la chaîne de longueur nulle est retournée.If $arg is the empty sequence, the zero-length string is returned.

  • Si $arg est un nœud, la fonction retourne la valeur de chaîne du nœud qui est obtenue à l’aide de l’accesseur de la valeur de chaîne.If $arg is a node, the function returns the string value of the node that is obtained by using the string-value accessor. Celui-ci est défini dans les spécifications W3C XQuery 1.0 et XPath 2.0 Data Model.This is defined in the W3C XQuery 1.0 and XPath 2.0 Data Model specification.

  • Si $arg est une valeur atomique, la fonction retourne la même chaîne est retournée par l’expression de cast en tant que xs : String, $arg, sauf si spécifié autrement.If $arg is an atomic value, the function returns the same string that is returned by the expression cast as xs:string, $arg, except when noted otherwise.

  • Si le type de $arg est xs : anyURI, l’URI est converti en une chaîne sans séquence d’échappement des caractères spéciaux.If the type of $arg is xs:anyURI, the URI is converted to a string without escaping special characters.

  • Dans cette implémentation, fn :String() sans argument peut uniquement être utilisé dans le contexte d’un prédicat dépendant du contexte.Inthis implementation, fn:string() without an argument can only be used in the context of a context-dependent predicate. Autrement dit, elle ne peut être utilisée qu'à l'intérieur de crochets ([ ]).Specifically, it can only be used inside brackets ([ ]).

ExemplesExamples

Cette rubrique fournit des exemples de XQuery relatifs à des instances XML stockés dans différentes xml colonnes de type dans la base de données AdventureWorks.This topic provides XQuery examples against XML instances that are stored in various xml type columns in the AdventureWorks database.

A.A. Utilisation de la fonction stringUsing the string function

La requête suivante extrait le nœud d'élément enfant <Features> de l'élément <ProductDescription>.The following query retrieves the <Features> child element node of the <ProductDescription> element.

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  

Voici le résultat partiel :This is the partial result:

<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>  

Si vous spécifiez la string() (fonction), vous recevez la valeur de chaîne du nœud spécifié.If you specify the string() function, you receive the string value of the specified node.

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  

Le résultat partiel est le suivant.This is the partial result.

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

B.B. Utilisation de la fonction string sur différents nœudsUsing the string function on various nodes

Dans l'exemple suivant, une instance XML est affectée à une variable de type xml.In the following example, an XML instance is assigned to an xml type variable. Les requêtes sont spécifiées pour illustrer le résultat de l’application string() à différents nœuds.Queries are specified to illustrate the result of applying string() to various nodes.

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>  
'  

La requête suivante extrait la valeur de chaîne du nœud de document.The following query retrieves the string value of the document node. Cette valeur est le fruit de la concaténation de la valeur de chaîne de tous ses nœuds de texte descendants.This value is formed by concatenating the string value of all its descendent text nodes.

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

Voici le résultat obtenu :This is the result:

This is a comment 10  
just text  
 20  

La requête suivante essaie d'extraire la valeur de chaîne d'un nœud d'instruction de traitement.The following query tries to retrieve the string value of a processing instruction node. Le résultat est une séquence vide, car il ne contient pas de nœud de texte.The result is an empty sequence, because it does not contain a text node.

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

La requête suivante extrait la valeur de chaîne du nœud de commentaire et renvoie le nœud de texte.The following query retrieves the string value of the comment node and returns the text node.

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

Voici le résultat obtenu :This is the result:

This is a comment   

Voir aussiSee Also

Fonctions XQuery impliquant le type de données xmlXQuery Functions against the xml Data Type