Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:programu SQL Server
Zwraca wartość $arg reprezentowaną jako ciąg.
Składnia
fn:string() as xs:string
fn:string($arg as item()?) as xs:string
Argumenty
$arg
To węzeł lub wartość niepodzielna.
Uwagi
Jeśli $arg jest pustą sekwencją, zwracany jest ciąg o zerowej długości.
Jeśli $arg jest węzłem, funkcja zwraca wartość ciągu węzła uzyskanego przy użyciu metody dostępu ciąg-wartość. Jest to zdefiniowane w specyfikacji modelu danych W3C XQuery 1.0 i XPath 2.0.
Jeśli $arg jest wartością niepodzieną, funkcja zwraca ten sam ciąg, który jest zwracany przez wyrażenie rzutowane jako xs:string, $arg, z wyjątkiem sytuacji, gdy jest to zaznaczone inaczej.
Jeśli typ $arg jest xs:anyURI, identyfikator URI jest konwertowany na ciąg bez ucieczki znaków specjalnych.
W tej implementacji fn:string() bez argumentu można używać tylko w kontekście predykatu zależnego od kontekstu. W szczególności można go używać tylko wewnątrz nawiasów kwadratowych ([ ]).
Przykłady
Ten temat zawiera przykłady zapytań XQuery dla wystąpień XML przechowywanych w różnych kolumnach xml typów w bazie danych AdventureWorks.
A. Korzystanie z funkcji string
Poniższe zapytanie pobiera węzeł elementu podrzędnego <Features
><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
Jest to wynik częściowy:
<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>
Jeśli określisz funkcję string(), otrzymasz wartość ciągu określonego węzła.
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
Jest to wynik częściowy.
These are the product highlights.
3 yearsparts and labor...
B. Korzystanie z funkcji string w różnych węzłach
W poniższym przykładzie wystąpienie XML jest przypisywane do zmiennej typu XML. Zapytania są określone w celu zilustrowania wyniku zastosowania string() do różnych węzłów.
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>
'
Poniższe zapytanie pobiera wartość ciągu węzła dokumentu. Ta wartość jest tworzona przez łączenie wartości ciągu wszystkich jego węzłów tekstowych malejących.
select @x.query('string(/)')
Jest to wynik:
This is a comment 10
just text
20
Poniższe zapytanie próbuje pobrać wartość ciągu węzła instrukcji przetwarzania. Wynik jest pustą sekwencją, ponieważ nie zawiera węzła tekstowego.
select @x.query('string(/processing-instruction()[1])')
Poniższe zapytanie pobiera wartość ciągu węzła komentarza i zwraca węzeł tekstowy.
select @x.query('string(/comment()[1])')
Jest to wynik:
This is a comment