Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
van toepassing op:SQL Server-
Vanuit een opgegeven invoer maken de constructorfuncties exemplaren van een van de ingebouwde XSD- of door de gebruiker gedefinieerde atomische typen.
Syntaxis
TYP($atomicvalue as xdt:anyAtomicType?
) as TYP?
Argumenten
$strval
Tekenreeks die wordt geconverteerd.
TYP-
Elk ingebouwd XSD-type.
Opmerkingen
Constructors worden ondersteund voor basis- en afgeleide atomische XSD-typen. De subtypen van xs:duration, waaronder xdt:yearMonthDuration en xdt:dayTimeDuration, en xs:QName, xs:NMTOKENen xs:NOTATION worden niet ondersteund. Door de gebruiker gedefinieerde atomische typen die beschikbaar zijn in de bijbehorende schemaverzamelingen zijn ook beschikbaar, mits ze direct of indirect zijn afgeleid van de volgende typen.
Ondersteunde basistypen
Dit zijn de ondersteunde basistypen:
xs:string
xs:boolean
xs:decimal
xs:float
xs:double
xs:duration
xs:dateTime
xs:time
xs:date
xs:gYearMonth
xs:gYear
xs:gMonthDay
xs:gDay
xs:gMonth
xs:hexBinary
xs:base64Binary
xs:anyURI
Ondersteunde afgeleide typen
Dit zijn de ondersteunde afgeleide typen:
xs:normalizedString
xs:token
xs:language
xs:Name
xs:NCName
xs:ID
xs:IDREF
xs:ENTITY
xs:integer
xs:nonPositiveInteger
xs:negativeInteger
xs:long
xs:int
xs:short
xs:byte
xs:nonNegativeInteger
xs:unsignedLong
xs:unsignedInt
xs:unsignedShort
xs:unsignedByte
xs:positiveInteger
SQL Server biedt ook ondersteuning voor constant vouwen voor aanroepen van bouwfuncties op de volgende manieren:
Als het argument een letterlijke tekenreeks is, wordt de expressie geëvalueerd tijdens de compilatie. Wanneer de waarde niet voldoet aan de typebeperkingen, wordt er een statische fout gegenereerd.
Als het argument een letterlijke waarde van een ander type is, wordt de expressie geëvalueerd tijdens de compilatie. Wanneer de waarde niet voldoet aan de typebeperkingen, wordt de lege reeks geretourneerd.
Voorbeelden
Dit onderwerp bevat XQuery-voorbeelden voor XML-exemplaren die zijn opgeslagen in verschillende xml--typekolommen in de AdventureWorks-database.
Een. De functie dateTime() XQuery gebruiken om oudere productbeschrijvingen op te halen
In dit voorbeeld wordt eerst een XML-voorbeelddocument toegewezen aan een xml- typevariabele. Dit document bevat drie voorbeeldelementen <ProductDescription>, waarbij elk element een <DateCreated> onderliggend element bevat.
De variabele wordt vervolgens opgevraagd om alleen de productbeschrijvingen op te halen die vóór een specifieke datum zijn gemaakt. Ter vergelijking gebruikt de query de xs:dateTime() constructorfunctie om de datums te typen.
declare @x xml
set @x = '<root>
<ProductDescription ProductID="1" >
<DateCreated DateValue="2000-01-01T00:00:00Z" />
<Summary>Some Summary description</Summary>
</ProductDescription>
<ProductDescription ProductID="2" >
<DateCreated DateValue="2001-01-01T00:00:00Z" />
<Summary>Some Summary description</Summary>
</ProductDescription>
<ProductDescription ProductID="3" >
<DateCreated DateValue="2002-01-01T00:00:00Z" />
<Summary>Some Summary description</Summary>
</ProductDescription>
</root>'
select @x.query('
for $PD in /root/ProductDescription
where xs:dateTime(data( ($PD/DateCreated/@DateValue)[1] )) < xs:dateTime("2001-01-01T00:00:00Z")
return
element Product
{
( attribute ProductID { data($PD/@ProductID ) },
attribute DateCreated { data( ($PD/DateCreated/@DateValue)[1] ) } )
}
')
Let op het volgende uit de vorige query:
De FOR ... WHERE-lusstructuur wordt gebruikt voor het ophalen van de <ProductDescription> element dat voldoet aan de voorwaarde die is opgegeven in de WHERE-component.
De dateTime() constructorfunctie wordt gebruikt om datum/tijd- typewaarden te maken, zodat ze op de juiste manier kunnen worden vergeleken.
De query maakt vervolgens de resulterende XML. Omdat u een reeks kenmerken samenstelt, worden komma's en haakjes gebruikt in de XML-constructie.
Dit is het resultaat:
<Product
ProductID="1"
DateCreated="2000-01-01T00:00:00Z"/>
Zie ook
XML-constructie (XQuery)
XQuery-functies op basis van het xml-gegevenstype