Freigeben über


Grundlegende Oracle-Datentypen

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

Unterstützte Oracle-Datentypen

Der Oracle E-Business-Adapter unterstützt die sichere Eingabe 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 aktivieren (standardmäßig deaktiviert). Weitere Informationen zu den Bindungseigenschaften des Oracle E-Business-Adapters finden Sie unter Informationen zu den Bindungseigenschaften des BizTalk-Adapters für Oracle E-Business Suite.

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[] -
Char xsd:string String -
Clob xsd:string String -
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. Hinweis: Der Oracle E-Business-Adapter macht den Oracle Date-Datentyp als xsd:dateTime anstelle von xsd:date verfügbar, weil:
  • Der Oracle Date-Datentyp kann auch einen Zeitwert enthalten.
  • Es gibt keine .NET-Entsprechung für xsd:date.
Schweben** xsd:float if prec <=7

xsd:double, wenn vor 7 > und <=15

xsd:string, wenn vor > 15
Float

Double

String
Sie müssen den Wert angeben, der mit dem format konsistent ist, das für das Dezimalzeichen und das Gruppentrennzeichen in der NumericCharacters-Bindungseigenschaft unter der MlsSettings-Bindungseigenschaft angegeben ist. Wenn für die Bindungseigenschaft NumericCharacters kein Wert angegeben wird, verwendet der Adapter die MLS-Einstellungen für den ODP.NET Client auf demselben Computer, auf dem der Adapter installiert ist.
IntervalDS xsd:string

xsd:duration, wenn innerhalb eines UDT
String

Zeitraum, wenn innerhalb einer UDT
Der Adapter gibt die IntervalDS-Daten mithilfe der OracleIntervalDS.ToString-Methode als Zeichenfolge zurück.

Der Wert sollte im nativen Oracle-Format ausgedrückt werden: Day HH:MI:SSxFF (z. B. "5 15:30:12.99").
IntervalYM xsd:string

xsd:long, wenn innerhalb eines UDT
String

Long, wenn innerhalb eines UDT
Der Adapter gibt die IntervalYM-Daten mithilfe der OracleIntervalYM.ToString-Methode als Zeichenfolge zurück.

Der Wert sollte im nativen Oracle-Format ausgedrückt werden: Year-Month; Beispiel: "1-2" (1 Jahr und 2 Monate).
Long xsd:string String Ab der Oracle-Datenbank 9i-Version ist der LONG-Datentyp veraltet. Oracle empfiehlt stattdessen die Verwendung der LOB-Datentypen (Large Object). 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 für LOB-Datentypen und nicht für den LONG-Datentyp verwendet werden.
LongRaw xsd:base64Binary Byte[] -
NChar xsd:string String -
NClob xsd:string String
Anzahl** xsd:decimal if prec <=28

xsd:string if prec > 28
Decimal
String
-
NVarchar2 xsd:string String -
Raw xsd:base64Binary Byte[]
Rowid xsd:string String -
Timestamp*

(Keine sichere Eingabe, wenn innerhalb eines UDT)
xsd:dateTime if prec <= 7

xsd:string if prec > 7
Datetime

String
Wenn er als Zeichenfolge (prec > 7) verfügbar gemacht wird, sollte der Wert in Oracle NLS_TIMESTAMP_FORMAT ausgedrückt werden. Sie können das Zeichenfolgenformat für TimeStamp-Datentypen in der TimeStampFormat-Bindungseigenschaft unter der MlsSettings-Bindungseigenschaft angeben. Wenn kein Wert für die TimeStampFormat-Bindungseigenschaft angegeben wird, verwendet der Adapter die MLS-Einstellungen für den ODP.NET-Client auf demselben Computer, auf dem der Adapter installiert ist.

TimeStamp-Werte dürfen 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 in UDTs nicht unterstützt.

Außerhalb einer UDT: Der Wert sollte in Oracle NLS_TIMESTAMP_TZ_FORMAT ausgedrückt werden. Sie können das Zeichenfolgenformat für TimeStampLTZ-Datentypen in der TimeStampTZFormat-Bindungseigenschaft unter der MlsSettings-Bindungseigenschaft angeben. Wenn kein Wert für die TimeStampTZFormat-Bindungseigenschaft angegeben wird, verwendet der Adapter die MLS-Einstellungen für den ODP.NET-Client auf dem Computer, auf dem der Adapter installiert ist.
TimeStampTZ xsd:string

xsd:dateTime, wenn innerhalb einer UDT
String

DateTime, wenn in einer UDT
Außerhalb einer UDT: Der Wert sollte in Oracle NLS_TIMESTAMP_TZ_FORMAT ausgedrückt werden. Sie können das Zeichenfolgenformat für TimeStampTZ-Datentypen in der TimeStampTZFormat-Bindungseigenschaft unter der MlsSettings-Bindungseigenschaft angeben. Wenn kein Wert für die TimeStampTZFormat-Bindungseigenschaft angegeben wird, verwendet der Adapter die MLS-Einstellungen für den ODP.NET-Client auf dem Computer, auf dem der Adapter installiert ist.
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 angeben, der mit dem für das Dezimalzeichen- und Gruppentrennzeichen angegebenen Format in der NumericCharacters-Bindungseigenschaft unter der MlsSettings-Bindungseigenschaft konsistent ist. Wenn kein Wert für die Bindungseigenschaft NumericCharacters angegeben wird, verwendet der Adapter die MLS-Einstellungen für den ODP.NET-Client auf dem Computer, auf dem der Adapter installiert ist.
Binary Double** xsd:double if prec <=15

xsd:string if prec > 15
Double

String
-
Ganzzahlige Binärzahlen** xsd:integer Int32
Boolean xsd:boolean Nullable Boolean
XMLTYPE xsd:string String Wird für Prozedurparameter der obersten Ebene unterstützt.

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 E-Business-Adapter ist an die maximale Länge des Werts gebunden, der von ODP.NET für den Oracle-Datentyp unterstützt wird.
    • Der Oracle E-Business-Adapter behandelt die numerischen Oracle-Datentypen innerhalb von UDTs intern als .NET Decimal. Im Allgemeinen (außerhalb von UDTs) behandelt der Oracle E-Business-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-Bindungseigenschafttrue ist.

Hinweis

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.

Oracle-Datentyp XSD-Typ .NET-Typ Kommentar
Date xsd:string String Der Wert sollte in Oracle NLS_DATE_FORMAT ausgedrückt werden. Sie können das Format für die Date-Datentypen in der DateFormat-Bindungseigenschaft unter der MlsSettings-Bindungseigenschaft angeben. Wenn kein Wert für die DateFormat-Bindungseigenschaft angegeben wird, verwendet der Adapter die MLS-Einstellungen für den ODP.NET-Client auf dem Computer, auf dem der Adapter installiert ist.
TimeStamp xsd:string String Der Wert sollte in Oracle NLS_TIMESTAMP_FORMAT ausgedrückt werden. Sie können das Zeichenfolgenformat für TimeStamp-Datentypen in der TimeStampFormat-Bindungseigenschaft unter der MlsSettings-Bindungseigenschaft angeben. Wenn kein Wert für die TimeStampFormat-Bindungseigenschaft angegeben wird, verwendet der Adapter die MLS-Einstellungen für den ODP.NET-Client auf demselben Computer, auf dem der Adapter installiert ist.

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.

Überprüfen

Der Oracle E-Business-Adapter 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 Überprüfung durchgeführt werden:

  • Beim Aufheben der Serialisierung zwischen dem in einer Nachricht übergebenen XML-Typen und den .NET-Typen, die intern vom Adapter verwendet werden.

  • Durch ODP.NET für einige Datentypen.

Weitere Informationen

Nachrichten und Nachrichtenschemas für den BizTalk-Adapter für Oracle E-Business Suite