基本 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 資料類型如何以安全類型停用呈現, (EnableSafeTyping 為 false) 。 受 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,因為:
|
浮動** | 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。