适用于 Oracle 数据库的 BizTalk 适配器的限制

常规

以下是适用于 Oracle 数据库的 Microsoft BizTalk 适配器的已知限制:

  • 除某些异常外,Oracle 数据库适配器与以前版本的适配器兼容。 有关自上一版本以来发生的更改列表,请参阅 BizTalk Adapter for Oracle Database 中的主要功能

  • SQLEXECUTE 操作不会向过程、函数或包返回 OUT 或 IN OUT 参数的值。 因此,必须使用 Oracle 数据库适配器为这些 Oracle 项目公开的专用操作来调用过程、函数和包。

  • 使用代理编程从 Oracle 数据库检索数据时,Oracle 数据库适配器不会反序列化节点数超过 65536 的 XML 消息。 确保响应消息的节点小于或等于 65536。 可以通过修改应用程序的 app.config 文件来绕过此限制。 有关说明,请参阅 排查 Oracle 数据库适配器的操作问题

  • Oracle 数据库适配器采用输入字符串并构造 SQL 命令,然后由适配器执行。 但是,输入字符串可能包含其他 SQL 命令,这些命令也会执行,并且可能会破坏操作协定。

    假设适配器向存储过程提供输入 REF CURSOR。 在这种情况下,适配器客户端必须提供一个命令,在执行时获取 REF CURSOR。 然后,适配器将 REF CURSOR 传递给存储过程。 但是,如果用于获取 REF CURSOR 的命令对数据库执行一些其他修改,则执行存储过程的操作协定将中断。

  • Oracle 数据库适配器仅支持最多两个级别的 UDT 嵌套。

  • 将适配器与 BizTalk Server 配合使用时,如果 WCF 自定义发送端口上的凭据不正确,则不会处理请求消息。 指定正确的凭据后,消息将发送到 Oracle 数据库,并收到响应。 但是,响应消息对输出端口不可用。 在这种情况下,可能需要重启主机实例。

  • Oracle 数据库适配器不支持复杂类型中的 BFILE 数据类型, (例如 RECORD 类型、TABLE 类型、UDT 和 VARRAY) 。

  • Oracle 数据库适配器不支持 User-Defined 类型 (具有循环引用的 UDT) 。

  • Oracle 数据库适配器不支持包含类型为 RECORD 的 PL/SQL 表的字段的记录。

  • Oracle 数据库适配器不允许客户端将 VARRAY 中第一个元素的值设置为 NULL。

  • 除 PL/SQL 表外,Oracle 数据库适配器不支持在包中定义的 UDT。

由于 ODP.NET 的限制

由于 ODP.NET 的限制,Oracle 数据库适配器存在以下已知限制:

  • 对于采用十进制值的 Oracle 数据类型,如果输入值包含字母字符,ODP.NET 不会引发异常。 由于 Oracle 数据库适配器使用 ODP.NET 与 Oracle 数据库进行交互,因此适配器在传递字母字符时也不会引发异常。 例如:

    • 为插入操作传递值“54r”不会引发异常;将改为插入值“54”。

    • 为插入操作传递值“r54”不会引发异常;将改为插入值“0”。

  • 由于 ODP.NET 限制,Oracle 数据库适配器不支持使用使用强类型和弱类型 REF CURSORS 的重载过程。 在内部,适配器将强类型化和弱类型 REF CURSORS 视为 REF CURSORS。

  • Oracle 数据库适配器不支持未按数字字段编制索引的 PL/SQL 表。

  • Oracle 数据库适配器不支持不包含任何元素的关联数组。

  • Oracle 数据库适配器不支持包含具有本地时区属性的 TimeStamp 数据类型的 UDT (TimeStampLTZ) 。

  • Oracle 数据库适配器不支持包含“.”的 UDT (名称中) 句点。

  • Oracle 数据库适配器不支持将 BLOB、CLOB 和 NCLOB 数据类型作为 IN OUT 参数的 UDT。

  • Oracle 数据库适配器不支持以下简单类型的 Varray:BFILE、IntervalDS、IntervalYM、TimeStampLTZ 和 TimeStampTZ。

  • 由于关联数组的限制,Oracle 数据库适配器不支持 PL/SQL 表或包含以下任何数据类型的记录的 PL/SQL 表:

    • BFILE

    • BLOB

    • CLOB

    • IntervalDS

    • IntervalYM

    • Long

    • NCLOB

    • RowID

    • 时间戳

    • TimeStampLTZ

    • TimeStampTZ

另请参阅

了解用于 Oracle 数据库的 BizTalk 适配器