Freigeben über


Informationen zu grundlegenden Oracle-Datentypen

In diesem Thema wird beschrieben, wie der Microsoft BizTalk-Adapter für Oracle-Datenbank grundlegende Oracle-Datentypen behandelt.

Unterstützte Oracle-Datentypen

Der Microsoft BizTalk-Adapter für Oracle-Datenbank unterstützt sichere Eingaben für einige Oracle-Datentypen. Wenn die sichere Eingabe aktiviert ist, werden diese Datentypen als Zeichenfolgen dargestellt. Sie konfigurieren die sichere Eingabe, indem Sie die Bindungseigenschaft EnableSafeTyping festlegen. Die sichere Eingabe ist standardmäßig deaktiviert. Weitere Informationen zu den Bindungseigenschaften des Oracle Database-Adapters finden Sie unter Informationen zu den Bindungseigenschaften des Oracle Database-Adapters.

Hinweis

Die sichere Eingabe wird nicht unterstützt, wenn Sich Datentypen in benutzerdefinierten Typen (User Defined Types, UDTs) befinden.

Die folgende Tabelle zeigt, wie die Oracle-Datentypen mit deaktivierter sicherer Eingabe angezeigt werden (EnableSafeTyping ist false). Oracle-Datentypen, die von der EnableSafeTyping-Bindungseigenschaft betroffen sind, werden mit einem Sternchen (*) gekennzeichnet.

Oracle-Datentyp XSD-Typ .NET-Typ Kommentare
BFile input: xsd:string
ausgabe: xsd:base64Binary
String
Byte[]
Der BFile-Datentyp wird in komplexen Typen (z. B. RecordType, TableType, UDT und VArray) nicht unterstützt.
Blob xsd:base64Binary Byte[] Unterstützt für Tabellenvorgänge und -prozeduren.
Char xsd:string String Unterstützt für Tabellenvorgänge und -prozeduren.
Clob xsd:string String Unterstützt für Tabellenvorgänge und -prozeduren.
Datum*

(Keine sichere Eingabe, wenn innerhalb eines UDT)
xsd:dateTime Datetime Datumswerte können keine Zeitzoneninformationen (UTC- oder UTC-Offsets) enthalten:

- xsd:dateTime-Werte dürfen keine UTC- oder UTC-Offsets enthalten.
- DateTime.Kind muss DateTimeKind.Unspecified sein.

Wenn Zeitzoneninformationen angegeben werden, löst der Adapter eine XmlReaderParsingException-Ausnahme mit einer Meldung aus, die das Feld angibt.
Schweben** xsd:float if prec <=7
xsd:double, wenn vor 7 > und <=15
xsd:string, wenn vor > 15
Float
Double
String
-
IntervalYM xsd:string

xsd:long, wenn innerhalb eines UDT
String

Long, wenn innerhalb eines UDT
Der Wert sollte im nativen Oracle-Format ausgedrückt werden: Year-Month; Beispiel: "1-2" (1 Jahr und 2 Monate).
IntervalDS xsd:string

xsd:duration, wenn innerhalb eines UDT
String

Zeitraum, wenn innerhalb einer UDT
Der Wert sollte im nativen Oracle-Format ausgedrückt werden: Day HH:MI:SSxFF; Beispiel: "5 15:30:12.99"
Long xsd:string String Unterstützt für alle Tabellenvorgänge, gespeicherten Prozeduren und Funktionen. Hinweis: Ab der Oracle-Datenbank 9i-Version ist der LONG-Datentyp veraltet. Oracle empfiehlt stattdessen die Verwendung der LOB-Datentypen. Daher wird beim Ausführen von Vorgängen für die Oracle-Datenbank mithilfe des Oracle Database-Adapters die Verwendung von Oracle-Datenbankartefakten empfohlen, die mit LOB-Datentypen und nicht mit dem LONG-Datentyp arbeiten.
LongRaw xsd:base64Binary Byte[] -
NChar xsd:string String -
NClob xsd:string String Unterstützt für Tabellenvorgänge und -prozeduren.
Anzahl** xsd:decimal if prec <=28
xsd:string if prec > 28
Decimal
String
-
NVarchar2 xsd:string String -
Raw xsd:base64Binary Byte[] Unterstützt für Tabellenvorgänge und -prozeduren.
Rowid xsd:string String -
Timestamp*

(Keine sichere Eingabe, wenn innerhalb eines UDT)
xsd:dateTime if prec <= 7
xsd:string if prec > 7
Datetime
String
TimeStamp-Werte können keine Zeitzoneninformationen (UTC- oder UTC-Offsets) enthalten:

- xsd:dateTime-Werte dürfen keine UTC- oder UTC-Offsets enthalten.
- DateTime.Kind muss DateTimeKind.Unspecified sein.

Wenn Zeitzoneninformationen angegeben werden, löst der Adapter eine XmlReaderParsingException-Ausnahme mit einer Meldung aus, die das Feld angibt.
TimeStampLTZ xsd:string String TimeStampLTZ wird innerhalb von UDTs nicht unterstützt.

Außerhalb eines UDT: Der Wert sollte in NLS_TIMESTAMP_TZ_FORMAT ausgedrückt werden.
TimeStampTZ xsd:string

xsd:dateTime, wenn innerhalb eines UDT
String

DateTime, wenn innerhalb eines UDT
Außerhalb eines UDT: Der Wert sollte in NLS_TIMESTAMP_TZ_FORMAT ausgedrückt werden.
Decimal** xsd:decimal if prec <=28
xsd:string if prec > 28
Decimal
String
-
Varchar2 xsd:string String -
Binary Float** xsd:float if prec <=7
xsd:string if prec > 7
Float
Zeichenfolge
Sie müssen den Wert in einem Formular angeben, das mit Ihrem Gebietsschema konsistent ist (System.Globalization.CultureInfo.CurrentCulture). Verwenden Sie beispielsweise für das englische Gebietsschema ein Punktzeichen ('.'), um das Dezimalzeichen anzugeben. Verwenden Sie für das französische Gebietsschema ein Komma (",").
Binary Double** xsd:double if prec <=15
xsd:string, wenn vor > 15
Double
String
-
Binär-Ganzzahl** xsd:integer Int32 Unterstützt für Prozeduren, Funktionen und Pakete.
Boolean xsd:boolean Nullable boolean
XMLTYPE xsd:string String Unterstützt für Prozedurparameter der obersten Ebene.

Reservierte XML-Zeichen wie "<", ">" müssen beim Entwickeln von Anwendungen in BizTalk und bei Verwendung des WCF-Kanalmodells durch ihre Entitätsdarstellung (<, >) ersetzt werden. Dies ist im Fall des WCF-Dienstmodells nicht erforderlich.

*Die Art und Weise, in der diese Oracle-Datentypen angezeigt werden, wird von der EnableSafeTyping-Bindungseigenschaft beeinflusst.

**Die Art und Weise, in der diese numerischen Oracle-Datentypen in DataSets und schwach typisierten REF CURSORS angezeigt werden, wird von der EnableSafeTyping-Bindungseigenschaft beeinflusst.

Wichtig

  • Die maximale Länge des Werts in einem Oracle-Datentyp im Oracle Database-Adapter wird durch die maximale Länge des Werts gebunden, der von ODP.NET für den Oracle-Datentyp unterstützt wird.
    • Der Oracle Database-Adapter behandelt die oracle numerischen Datentypen innerhalb von UDTs intern als .NET Decimal. Im Allgemeinen (d. h. außerhalb von UDTs) behandelt der Oracle Database-Adapter die numerischen Oracle-Datentypen jedoch intern als OracleDecimal.

Sichere Eingabe aktiviert

Die folgende Tabelle zeigt, wie die Oracle-Datentypen, die von der sicheren Eingabe betroffen sind, geändert werden, wenn die EnableSafeTyping-Bindungseigenschaft true ist.

Oracle-Datentyp XSD-Typ .NET-Typ Kommentar
Date xsd:string String Der Wert sollte in Oracle NLS_DATE_FORMAT ausgedrückt werden.
TimeStamp xsd:string String Der Wert sollte in Oracle NLS_TIMESTAMP_FORMAT ausgedrückt werden.

Wichtig

Wenn die sichere Eingabe aktiviert ist, werden die numerischen Oracle-Datentypen in DataSets und schwach typisierte REF CURSORS immer als Zeichenfolgen verfügbar gemacht.

Oracle-Datentypen, die nicht in dieser Tabelle enthalten sind, werden auf die gleiche Weise angezeigt, unabhängig davon, ob die sichere Eingabe aktiviert oder deaktiviert ist.

Überprüfen

Der Microsoft BizTalk-Adapter für Oracle-Datenbank führt keine explizite Überprüfung der Werte durch, die Sie für Oracle-Datentypen angeben. Abhängig vom Oracle-Datentyp und davon, ob die sichere Eingabe aktiviert oder deaktiviert ist, kann jedoch eine implizite Validierung durchgeführt werden:

  • Beim Deserialisieren zwischen dem xml-Objekt, das in einer Nachricht übergeben wird, und den .NET-Typen, die intern vom Adapter verwendet werden.

  • Durch ODP.NET für einige Datentypen.