Nota
L'accesso a questa pagina richiede l'autorizzazione. Puoi provare ad accedere o a cambiare directory.
L'accesso a questa pagina richiede l'autorizzazione. Puoi provare a cambiare directory.
Si applica a:SQL Server
Restituisce il valore di $arg rappresentato come stringa.
Sintassi
fn:string() as xs:string
fn:string($arg as item()?) as xs:string
Argomenti
$arg
Nodo o valore atomico.
Osservazioni:
Se $arg è la sequenza vuota, viene restituita la stringa di lunghezza zero.
Se $arg è un nodo, la funzione restituisce il valore stringa del nodo ottenuto usando la funzione di accesso string-value. definita nella specifica W3C "XQuery 1.0 and XPath 2.0 Data Model".
Se $arg è un valore atomico, la funzione restituisce la stessa stringa restituita dal cast dell'espressione come
xs:string, $arg, tranne quando diversamente specificato.Se il tipo di $arg è
xs:anyURI, l'URI viene convertito in una stringa senza evitare caratteri speciali.In questa implementazione,
fn:string()senza un argomento può essere usato solo nel contesto di un predicato dipendente dal contesto. In particolare, può essere usato solo tra parentesi quadre ([ ]).
Esempi
Questo articolo fornisce esempi di XQuery su istanze XML archiviate in varie colonne di tipo xml nel database AdventureWorks.
R. Usare la funzione stringa
La query seguente recupera il <Features> nodo elemento figlio dell'elemento <ProductDescription> .
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;
Ecco il risultato parziale:
<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>
Se si specifica la string() funzione, si riceve il valore stringa del nodo specificato.
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;
Ecco il risultato parziale.
These are the product highlights.
3 yearsparts and labor...
B. Usare la funzione stringa in vari nodi
Nell'esempio seguente, un'istanza XML viene assegnata a una variabile di tipo XML. Le query vengono specificate per illustrare il risultato dell'applicazione string() a vari nodi.
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>
';
La query seguente recupera il valore stringa del nodo del documento. Il valore è formato dalla concatenazione del valore stringa di tutti i relativi nodi di testo discendenti.
SELECT @x.query('string(/)');
Il risultato è il seguente:
This is a comment 10
just text
20
La query seguente tenta il recupero del valore stringa del nodo di un'istruzione di elaborazione. Il risultato è una sequenza vuota, perché non contiene un nodo di testo.
SELECT @x.query('string(/processing-instruction()[1])');
La query seguente recupera il valore stringa del nodo di commento e restituisce il nodo di testo.
SELECT @x.query('string(/comment()[1])');
Il risultato è il seguente:
This is a comment