基本 Oracle 数据类型
本主题介绍适用于 Oracle E-Business Suite 的 Microsoft BizTalk 适配器如何呈现基本 Oracle 数据类型。
支持的 Oracle 数据类型
Oracle E-Business 适配器支持对某些 Oracle 数据类型进行安全键入。 启用安全键入后,这些数据类型表示为字符串。 通过启用 EnableSafeTyping 绑定属性来配置安全键入, (默认禁用) 。 有关 Oracle E-Business 适配器绑定属性的详细信息,请参阅阅读有关适用于 Oracle E-Business Suite 绑定属性的 BizTalk 适配器。
注意
如果数据类型位于用户定义类型 (UDT) 中,则不支持安全键入。
下表显示了在禁用安全键入的情况下如何显示 Oracle 数据类型, (EnableSafeTyping 为 false) 。 受 EnableSafeTyping 绑定属性影响的 Oracle 数据类型标有星号 (*) 。
Oracle 数据类型 | XSD 类型 | .NET 类型 | 注释 |
---|---|---|---|
BFile | input: xsd:string output: xsd:base64Binary |
字符串 Byte[] |
在 RecordType、TableType、UDT 和 VArray) 等复杂类型 (不支持 BFile 数据类型。 |
Blob | xsd:base64Binary | Byte[] | - |
Char | xsd: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 字符串 |
必须指定与 MlsSettings 绑定属性下的 NumericCharacters 绑定属性中为十进制字符和组分隔符指定的格式一致的值。 如果未为 NumericCharacters 绑定属性指定任何值,则适配器在安装适配器的同一台计算机上使用 ODP.NET 客户端的 MLS 设置。 |
IntervalDS | xsd:string xsd:duration(如果位于 UDT 内) |
字符串 如果位于 UDT 内,则时间跨度 |
适配器使用 OracleIntervalDS.ToString 方法以字符串的形式返回 IntervalDS 数据。 该值应以 Oracle 本机格式表示:Day HH:MI:SSxFF (例如,“5 15:30:12.99”) 。 |
IntervalYM | xsd:string xsd:long 如果位于 UDT 内 |
字符串 如果在 UDT 内,则为长 |
适配器使用 OracleIntervalYM.ToString 方法以字符串的形式返回 IntervalYM 数据。 该值应以 Oracle 本机格式表示:Year-Month;例如,“1-2” (1 年 2 个月) 。 |
Long | xsd:string | 字符串 | 从 Oracle database 9i 版本开始,LONG 数据类型已弃用。 Oracle 建议改用大型对象 (LOB) 数据类型。 因此,在使用 Oracle 数据库适配器对 Oracle 数据库执行操作时,建议使用对 LOB 数据类型而不是 LONG 数据类型进行操作的 Oracle 数据库项目。 |
LongRaw | xsd:base64Binary | Byte[] | - |
NChar | xsd:string | 字符串 | - |
NClob | xsd:string | 字符串 | |
数量** | xsd:decimal(如果 prec <=28) xsd:string if prec > 28 |
小数 String |
- |
NVarchar2 | xsd:string | 字符串 | - |
原始 | xsd:base64Binary | Byte[] | |
RowID | xsd:string | 字符串 | - |
时间 戳* (如果在 UDT) 内,则无法安全键入 |
xsd:dateTime(如果 prec = 7)< xsd:string if prec > 7 |
DateTime 字符串 |
当以字符串 (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 xsd:dateTime(如果位于 UDT 内) |
字符串 如果位于 UDT 内,则为 DateTime |
在 UDT 外部:值应以 Oracle NLS_TIMESTAMP_TZ_FORMAT表示。 可以在 MlsSettings 绑定属性下的 TimeStampTZFormat 绑定属性中为 TimeStampTZ 数据类型指定字符串格式。 如果未为 TimeStampTZFormat 绑定属性指定任何值,则适配器在安装适配器的同一台计算机上使用 ODP.NET 客户端的 MLS 设置。 |
十进制** | xsd:decimal(如果 prec <=28) xsd:string if prec > 28 |
小数 String |
- |
Varchar2 | xsd:string | 字符串 | - |
二进制浮点数** | xsd:float if prec <=7 xsd:string if prec > 7 |
Float String |
必须指定与 MlsSettings 绑定属性下的 NumericCharacters 绑定属性中为十进制字符和组分隔符指定的格式一致的值。 如果未为 NumericCharacters 绑定属性指定任何值,则适配器在安装适配器的同一台计算机上使用 ODP.NET 客户端的 MLS 设置。 |
二进制双精度** | xsd:double if prec <=15 xsd:string if prec > 15 |
Double 字符串 |
- |
二进制整数** | xsd:integer | Int32 | |
Boolean | xsd:boolean | 可以为 Null 的布尔值 | |
XMLTYPE | xsd:string | 字符串 | 支持顶级过程参数。 在 BizTalk 中开发应用程序以及使用 WCF 通道模型时,必须将保留的 XML 字符(如“<”、“”>)替换为其实体表示形式 (<> 、) 。 对于 WCF 服务模型,这不是必需的。 |
*这些 Oracle 数据类型的显示方式受 EnableSafeTyping 绑定属性的影响。
**这些 Oracle 数值数据类型在 DataSet 和弱类型 REF CURSORS 中的显示方式受 EnableSafeTyping 绑定属性的影响。
重要
- Oracle 电子商务适配器中 Oracle 数据类型中值的最大长度受 Oracle 数据类型 ODP.NET 支持的最大长度约束。
- Oracle E-Business 适配器在内部将 UDT 中的 Oracle 数字数据类型视为 .NET Decimal。 但是,通常, (UDT) 外部,Oracle 电子商务适配器在内部将 Oracle 数值数据类型视为 OracleDecimal。
已启用安全键入
下表显示了 当 EnableSafeTyping 绑定属性 为 true 时,如何更改受安全键入影响的 Oracle 数据类型。
注意
不在此表中的 Oracle 数据类型的显示方式与启用或禁用安全键入的方式相同。
Oracle 数据类型 | XSD 类型 | .NET 类型 | 评论 |
---|---|---|---|
日期 | xsd:string | 字符串 | 该值应以 Oracle NLS_DATE_FORMAT表示。 可以在 MlsSettings 绑定属性下的 DateFormat 绑定属性中指定 Date 数据类型的格式。 如果未为 DateFormat 绑定属性指定任何值,则适配器将使用安装适配器的同一计算机上的 ODP.NET 客户端的 MLS 设置。 |
时间戳 | xsd:string | 字符串 | 该值应以 Oracle NLS_TIMESTAMP_FORMAT表示。 可以在 MlsSettings 绑定属性下的 TimeStampFormat 绑定属性中为 TimeStamp 数据类型指定字符串格式。 如果未为 TimeStampFormat 绑定属性指定任何值,则适配器在安装适配器的同一台计算机上使用 ODP.NET 客户端的 MLS 设置。 |
重要
如果启用了安全键入,则 DataSets 中的 Oracle 数值数据类型和弱类型 REF CURSORS 始终以字符串形式公开。
验证
Oracle E-Business 适配器不对为 Oracle 数据类型指定的值执行显式验证。 但是,根据 Oracle 数据类型以及是启用还是禁用安全键入,可以执行隐式验证:
在消息中传递的 XML 与适配器在内部使用的 .NET 类型之间进行反序列化时。
通过 ODP.NET 某些数据类型。