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.