Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
van toepassing op:SQL Server-
Retourneert de waarde van $arg weergegeven als een tekenreeks.
Syntaxis
fn:string() as xs:string
fn:string($arg as item()?) as xs:string
Argumenten
$arg
Een knooppunt of een atomische waarde.
Opmerkingen
Als $arg de lege reeks is, wordt de tekenreeks met lengte nul geretourneerd.
Als $arg een knooppunt is, retourneert de functie de tekenreekswaarde van het knooppunt dat wordt verkregen met behulp van de accessor voor tekenreekswaarden. Dit is gedefinieerd in de specificatie W3C XQuery 1.0 en XPath 2.0-gegevensmodel.
Als $arg een atomische waarde is, retourneert de functie dezelfde tekenreeks die wordt geretourneerd door de expressiecast als
xs:string, $arg, behalve wanneer anders wordt vermeld.Als het type $arg is
xs:anyURI, wordt de URI geconverteerd naar een tekenreeks zonder speciale tekens te ontsnappen.In deze implementatie
fn:string()kan zonder argument alleen worden gebruikt in de context van een contextafhankelijk predicaat. Het kan met name alleen tussen vierkante haken ([ ]) worden gebruikt.
Voorbeelden
Dit artikel bevat XQuery-voorbeelden voor XML-exemplaren die zijn opgeslagen in verschillende xml-typekolommen in de AdventureWorks-database .
Een. De tekenreeksfunctie gebruiken
Met de volgende query wordt het <Features> onderliggende elementknooppunt van het <ProductDescription>-element opgehaald.
SELECT CatalogDescription.query('
declare namespace PD="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelDescription";
/PD:ProductDescription/PD:Features
')
FROM Production.ProductModel
WHERE ProductModelID = 19;
Dit is het gedeeltelijke resultaat:
<PD:Features xmlns:PD="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelDescription">
These are the product highlights.
<p1:Warranty xmlns:p1="https://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>
Als u de string() functie opgeeft, ontvangt u de tekenreekswaarde van het opgegeven knooppunt.
SELECT CatalogDescription.query('
declare namespace PD="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelDescription";
string(/PD:ProductDescription[1]/PD:Features[1])
')
FROM Production.ProductModel
WHERE ProductModelID = 19;
Dit is het gedeeltelijke resultaat.
These are the product highlights.
3 yearsparts and labor...
B. De tekenreeksfunctie op verschillende knooppunten gebruiken
In het volgende voorbeeld wordt een XML-exemplaar toegewezen aan een xml-typevariabele. Query's worden opgegeven om het resultaat te illustreren van het toepassen op string() verschillende knooppunten.
DECLARE @x AS 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>
';
Met de volgende query wordt de tekenreekswaarde van het documentknooppunt opgehaald. Deze waarde wordt gevormd door de tekenreekswaarde van alle afliggende tekstknooppunten samen te voegen.
SELECT @x.query('string(/)');
Dit is het resultaat:
This is a comment 10
just text
20
De volgende query probeert de tekenreekswaarde van een verwerkingsinstructieknooppunt op te halen. Het resultaat is een lege reeks, omdat het geen tekstknooppunt bevat.
SELECT @x.query('string(/processing-instruction()[1])');
De volgende query haalt de tekenreekswaarde van het opmerkingknooppunt op en retourneert het tekstknooppunt.
SELECT @x.query('string(/comment()[1])');
Dit is het resultaat:
This is a comment