共用方式為


基本 Oracle 資料類型

本主題描述 Microsoft BizTalk Adapter for Oracle E-Business Suite 如何呈現基本的 Oracle 資料類型。

支援的 Oracle 資料類型

Oracle E-Business 配接器支援某些 Oracle 資料類型的安全輸入。 啟用安全輸入時,這些資料類型會以字串表示。 您可以藉由啟用 EnableSafeTyping 系結屬性來設定安全輸入, (預設為停用) 。 如需 Oracle E-Business 配接器系結屬性的詳細資訊,請參閱 閱讀 BizTalk Adapter for Oracle E-Business Suite 系結屬性

注意

如果資料類型位於使用者定義類型內, (UDT) ,則不支援安全輸入。

下表顯示 Oracle 資料類型如何以安全類型停用呈現, (EnableSafeTypingfalse) 。 受 EnableSafeTyping系結屬性影響的 Oracle 資料類型會標示星號 (*) 。

Oracle 資料類型 XSD 類型 .NET 類型 註解
BFile input:xsd:string

output:xsd:base64Binary
字串

Byte[]
複雜類型 (不支援 BFile 資料類型,例如 RecordType、TableType、UDT 和 VArray) 。
Blob xsd:base64Binary Byte[] -
Char xsd:string String -
Clob xsd:string 字串 -
日期*

(UDT) 內沒有安全輸入
xsd:dateTime DateTime 日期值不能包含 (UTC 或 UTC 位移) 時區資訊:

- xsd:dateTime 值不得包含 UTC 或 UTC 位移
- DateTime.Kind 必須是 DateTimeKind.Unspecified

如果指定時區資訊,配接器會擲回 XmlReaderParsingException 例外狀況,並顯示指出欄位的訊息。 注意: Oracle E-Business 配接器會將 Oracle Date 資料類型公開為 xsd:dateTime,而不是 xsd:date,因為:
  • Oracle Date 資料類型也可以包含時間值。
  • xsd:date 沒有 .NET 對等專案。
浮動** xsd:float if prec < =7

xsd:double if prec > 7 and < =15

xsd:string if prec > 15
Float

Double

String
您必須在MlsSettings系結屬性下的NumericCharacters系結屬性中,指定與小數位符和群組分隔符號所指定的格式一致的值。 如果未為 NumericCharacters 系結屬性指定任何值,配接器就會在安裝介面卡的相同電腦上,使用 ODP.NET 用戶端的 MLS 設定。
IntervalDS xsd:string

如果位於 UDT 內,則為 xsd:duration
字串

如果位於 UDT 內部,則為時間範圍
配接器會使用 OracleIntervalDS.ToString 方法,以字串的形式傳回 IntervalDS 資料。

此值應該以 Oracle 原生格式表示:Day HH:MI:SSxFF (,例如「5 15:30:12.99」) 。
IntervalYM xsd:string

如果位於 UDT 內,則為 xsd:long
字串

如果位於 UDT 內,則為 Long
配接器會使用 OracleIntervalYM.ToString 方法,以字串的形式傳回 IntervalYM 資料。

此值應該以 Oracle 原生格式表示:Year-Month;例如,「1-2」 (1 年和 2 個月) 。
long xsd:string 字串 從 Oracle 資料庫 9i 版本開始,LONG 資料類型已被取代。 Oracle 建議改用 Large Object (LOB) 資料類型。 因此,在使用 Oracle 資料庫配接器對 Oracle 資料庫執行作業時,我們建議使用在 LOB 資料類型上運作,而不是 LONG 資料類型的 Oracle 資料庫成品。
LongRaw xsd:base64Binary Byte[] -
NChar xsd:string 字串 -
NClob xsd:string 字串
數量** 如果 prec < =28,則為 xsd:decimal

xsd:string if prec > 28
Decimal
String
-
NVarchar2 xsd:string 字串 -
Raw xsd:base64Binary Byte[]
RowID xsd:string 字串 -
時間 戳*

(UDT) 內沒有安全輸入
xsd:dateTime if prec < = 7

xsd:string if prec > 7
Datetime

String
當公開為字串 (prec > 7) 時,此值應該以 Oracle NLS_TIMESTAMP_FORMAT表示。 您可以在MlsSettings系結屬性下的TimeStampFormat系結屬性中指定 TimeStamp 資料類型的字串格式。 如果未為 TimeStampFormat 系結屬性指定任何值,配接器會在安裝配接器的同一部電腦上,針對 ODP.NET 用戶端使用 MLS 設定。

TimeStamp 值不能包含時區資訊, (UTC 或 UTC 位移) :

- xsd:dateTime 值不得包含 UTC 或 UTC 位移
- DateTime.Kind 必須是 DateTimeKind.Unspecified

如果指定時區資訊,配接器會擲回 XmlReaderParsingException 例外狀況,並顯示指出欄位的訊息。
TimeStampLTZ xsd:string 字串 UDT 內不支援 TimeStampLTZ。

UDT 外部:此值應該以 Oracle NLS_TIMESTAMP_TZ_FORMAT表示。 您可以在MlsSettings系結屬性下的TimeStampTZFormat系結屬性中指定 TimeStampLTZ 資料類型的字串格式。 如果未為 TimeStampTZFormat 系結屬性指定任何值,配接器會在安裝介面卡的同一部電腦上,針對 ODP.NET 用戶端使用 MLS 設定。
TimeStampTZ xsd:string

在 UDT 內時,xsd:dateTime
字串

在 UDT 內部的 DateTime
UDT 外部:此值應該以 Oracle NLS_TIMESTAMP_TZ_FORMAT表示。 您可以在MlsSettings系結屬性下的TimeStampTZFormat系結屬性中指定 TimeStampTZ 資料類型的字串格式。 如果未為 TimeStampTZFormat 系結屬性指定任何值,配接器會在安裝介面卡的同一部電腦上,針對 ODP.NET 用戶端使用 MLS 設定。
十進位** xsd:decimal if prec < =28

xsd:string if prec > 28
Decimal

String
-
Varchar2 xsd:string 字串 -
二進位浮點數** xsd:float if prec < =7

xsd:string if prec > 7
Float

字串
您必須在MlsSettings系結屬性下的NumericCharacters系結屬性中,指定針對十進位字元和群組分隔符號所指定的格式一致的值。 如果未為 NumericCharacters 系結屬性指定任何值,配接器會在安裝配接器的同一部電腦上,針對 ODP.NET 用戶端使用 MLS 設定。
二進位雙精度浮點數** xsd:double if prec < =15

xsd:string if prec > 15
Double

String
-
二進位整數** xsd:integer Int32
Boolean xsd:boolean 可為 Null 的布林值
XMLTYPE xsd:string 字串 支援最上層程式參數。

在 BizTalk 中開發應用程式時,以及使用 WCF 通道模型時,必須將 ''、 ' <> ' 等保留的 XML 字元取代為其實體表示 法 (< 、 >) 。 在 WCF 服務模型的情況下,不需要這樣做。

*這些 Oracle 資料類型呈現的方式會受到 EnableSafeTyping 系結屬性的影響。

**DataSet 和弱型別 REF CURSORS 內的這些 Oracle 數值資料類型呈現的方式會受到 EnableSafeTyping 系結屬性的影響。

重要

  • Oracle E-Business 配接器中 Oracle 資料類型中值的最大長度,會系結 Oracle 資料類型所支援之值的最大長度 ODP.NET。
    • Oracle E-Business 配接器會在內部將 UDT 內的 Oracle 數值資料類型視為 .NET Decimal。 不過,一般而言,在 UDT 外部) (,Oracle E-Business 配接器會在內部將 Oracle 數值資料類型視為 OracleDecimal。

已啟用安全輸入

下表顯示 當 EnableSafeTyping 系結屬性 為 true時,受安全類型影響的 Oracle 資料類型如何變更。

注意

不在此資料表中的 Oracle 資料類型會以啟用或停用安全輸入的方式呈現。

Oracle 資料類型 XSD 類型 .NET 類型 註解
Date xsd:string 字串 此值應該以 Oracle NLS_DATE_FORMAT表示。 您可以在MlsSettings系結屬性下的DateFormat系結屬性中指定 Date 資料類型的格式。 如果未為 DateFormat 系結屬性指定任何值,配接器會在安裝配接器的同一部電腦上,針對 ODP.NET 用戶端使用 MLS 設定。
TimeStamp xsd:string 字串 此值應該以 Oracle NLS_TIMESTAMP_FORMAT表示。 您可以在MlsSettings系結屬性下的TimeStampFormat系結屬性中指定 TimeStamp 資料類型的字串格式。 如果未為 TimeStampFormat 系結屬性指定任何值,配接器會在安裝配接器的同一部電腦上,針對 ODP.NET 用戶端使用 MLS 設定。

重要

如果啟用安全輸入,DataSet 和弱型別 REF CURSORS 內的 Oracle 數值資料類型一律會公開為字串。

驗證

Oracle E-Business 配接器不會對您為 Oracle 資料類型指定的值執行明確驗證。 不過,視 Oracle 資料類型而定,以及是否啟用或停用安全型別,可能會執行隱含驗證:

  • 在訊息中傳遞的 XML 與配接器內部使用的 .NET 類型之間取消序列化時。

  • 針對某些資料類型 ODP.NET。

另請參閱

BizTalk Adapter for Oracle E-Business Suite 的訊息和訊息結構描述