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:
|
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