共用方式為


LEXECUTE 作業的訊息結構描述

Microsoft BizTalk Adapter for Oracle Database 會針對 LOB 系統中存在的成品呈現強型別中繼資料,並在這些成品上公開標準作業。 不過,在某些情況下,應用程式可能需要執行由應用程式中商務邏輯驅動的任意 SQL 語句。 例如,您可能想要:

  • 對 Oracle 資料庫配接器未呈現的資料庫成品執行作業;例如,取得 Oracle SEQUENCE 的 CURVAL 或 NEXTVAL。

  • 執行資料定義語言作業;例如,建立資料表。

  • 在設計階段不存在的資料庫成品上執行作業;例如,更新商務邏輯所建立之臨時表中的記錄。

  • 對資料表執行更複雜的 DML 作業,而不是 Oracle 資料庫配接器所呈現的作業;例如,執行包含 JOIN 子句的查詢。

    Oracle 資料庫配接器會顯示稱為 SQLEXECUTE 作業的特殊作業,以支援這類案例。 藉由使用此作業,您可以指定 Oracle Database 配接器在 Oracle 資料庫上執行的任意 SQL 語句。 您也可以在 SQL 語句中指定多個輸入參數區塊。 Oracle Database 配接器會針對每個參數集執行 SQL 語句一次,並將任何輸出傳回為泛型 (弱型別) 記錄集。

注意

您可以將 IN 和 IN OUT 參數傳遞至 SQLEXECUTE 作業中的程式、函式和封裝。 叫用的成品將會在 Oracle 資料庫上使用所提供的參數來執行;不過,SQLEXECUTE 作業不會將 OUT 和 IN OUT 參數的值傳回給用戶端。 如果您想要叫用程式、函式或套件,Microsoft 建議您叫用 Oracle 資料庫配接器針對這些 Oracle 成品公開的專用作業來執行此動作。

下列 XML 顯示 SQLEXECUTE 作業的結構:

<SQLEXECUTE xmlns="SQLEXECUTE">  
  <SQLSTATEMENT> [STATEMENT] </SQLSTATEMENT>  
  <PARAMETERSCHEMA>[PARAM_SPEC]</PARAMETERSCHEMA>  
  <PARAMETERSET>  
    <PARAMETERDATA>  
      <PARAMETER xmlns:c="http://schemas.microsoft.com/2003/10/Serialization/Arrays">  
        <c:string>[PARAM_VAL_1]</c:string>  
      </PARAMETER>  
    </PARAMETERDATA>  
    …  
  </PARAMETERSET>  
</SQLEXECUTE>  

[STATEMENT] = 要執行的 SQL 語句;例如,「SELECT * from emp WHERE empno=:emp_no」。

[PARAM_SPEC] = SQL 語句及其資料類型中的 IN 參數清單;例如,「emp_no NUMBER」。

[PARAM_VAL_1] = 第一個參數的值。

每個 < PARAMETERDATA > 區段都包含一組 < 完整的 PARAMETER > 元素,符合 PARAMETERSCHEMA > 區段中的 < 架構。 <PARAMETERSET > 可以包含多個 < PARAMETERDATA > 區段。 如果是這種情況,則會針對每個參數集執行一次 SQL 語句。

另請參閱

BizTalk Adapter for Oracle Database 的訊息和訊息結構描述