BizTalk Adapter for Oracle Database 的限制
一般
以下是 Microsoft BizTalk Adapter for Oracle Database 的已知限制:
基於某些例外狀況,Oracle 資料庫配接器與舊版配接器相容。 如需自上次版本以來發生的變更清單,請參閱 BizTalk Adapter for Oracle Database 的主要功能。
SQLEXECUTE 作業不會將 OUT 或 IN OUT 參數的值傳回至程式、函式或封裝。 基於這個理由,您必須使用 Oracle 資料庫配接器針對這些 Oracle 成品公開的專用作業來叫用程式、函式和套件。
使用 Proxy 程式設計從 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 資料庫配接器不支援具有迴圈參考 (UDT) User-Defined 類型。
Oracle 資料庫配接器不支援包含 RECORD 類型 PL/SQL 資料表欄位的記錄。
Oracle 資料庫配接器不會讓用戶端將 VARRAY 中第一個專案的值設定為 Null。
除了 PL/SQL 資料表之外,Oracle 資料庫配接器不支援封裝內定義的 UDT。
因 ODP.NET 而造成的限制
以下是 Oracle 資料庫介面卡的已知限制,因為 ODP.NET 的限制:
對於採用十進位值的 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 資料庫配接器不支援包含 「. (句點) 名稱。
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
TimeStamp
TimeStampLTZ
TimeStampTZ