Udostępnij za pośrednictwem


Funkcje Konstruktora (XQuery)

Określone dane wejściowe funkcje konstruktora utworzyć wystąpień każdego typu XSD wbudowanej lub zdefiniowanej przez użytkownika niepodzielny.


            TYP($atomicvalue as xdt:anyAtomicType?
            
            ) as TYP?
        

Argumenty

  • $ strval
    Ciąg znaków, które mają być poddane konwersji.

  • TYP
    Dowolny wbudowany typ XSD.

Remarks

Konstruktory są obsługiwane dla podstawowego i pochodny niepodzielny typów XSD.Jednak podtypów z xs:Duration, która obejmuje XDT:yearMonthDuration i xdt:dayTimeDuration, and xs:QName, xs:NMTOKEN, and xs:NOTATION nie są obsługiwane.W przypadku typów zdefiniowanych przez użytkownika niepodzielny dostępne w kolekcji skojarzony schemat dostępne są także, pod warunkiem, że bezpośrednio lub pośrednio pochodzą z następujących typów.

Obsługiwane typy podstawowe

Oto obsługiwane typy podstawowe:

  • xs:ciąg

  • xs:logiczny

  • xs:decimal

  • xs:float

  • xs:Double

  • xs:Duration

  • xs:dateTime

  • xs:czas

  • xs

  • xs:gYearMonth

  • xs:gYear

  • xs:gMonthDay

  • xs:gDay

  • xs:gMonth

  • xs:hexBinary

  • xs:base64Binary

  • xs:anyURI

Obsługiwane typy pochodne

Oto obsługiwane typy pochodne:

  • xs:normalizedString

  • xs:token

  • xs:Language

  • xs:Name

  • xs:NCName

  • xs: ID

  • xs:IDREF

  • xs:obiekt

  • 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

Program SQL Server obsługuje także stała składanie dla wywołania funkcja konstrukcji w następujący sposób:

  • Jeśli argument jest literał ciąg znaków, wyrażenie będą oceniane podczas kompilacji.Jeśli wartość nie spełnia ograniczenia typu, błąd statycznego zostanie zaokrąglona.

  • Jeśli argument jest literałem innego typu, wyrażenie będą oceniane podczas kompilacji.Wartość nie spełnia ograniczenia typu, zwracany jest pusty sekwencji.

Przykłady

W tym temacie przedstawiono przykłady XQuery przed XML wystąpienia, które są przechowywane w różnych XML typu kolumny bazy danych AdventureWorks.Aby uzyskać ogólne informacje o każdej z tych kolumn zobacz xml Data Type Representation in the AdventureWorks Database.

A.Za pomocą funkcja XQuery dateTime() pobrać starsze opisy produktów

W tym przykładzie przykładowy dokument XML jest najpierw przypisany do XML typu zmiennej.Ten dokument zawiera trzy przykłady <ProductDescription> elementy z każdego z nich, które zawierają <DateCreated> element podrzędność.

Zmienna jest następnie proszeni o pobierać tylko te opisy produktów, które zostały utworzone przed określoną data.W celu porównania, używanych przez kwerendę xs:dateTime() Konstruktor wpisanie daty.

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] ) } )
        }
 ')

Pierwszy przycisk jest przyciskiem domyślnym.

  • FOR...Struktura pętli WHERE jest używana do pobierania <ProductDescription> element spełniający warunek określony w klauzula WHERE.

  • The dateTime() constructor funkcja is used to construct dateTime type values so they can be compared appropriately.

  • Kwerendy konstruuje następnie wynikowego pliku XML.Ponieważ są tworzenia sekwencji atrybutów, przecinki i nawiasy są używane do budowy XML.

To jest wynik:

<Product 
   ProductID="1" 
   DateCreated="2000-01-01T00:00:00Z"/>