共用方式為


在 Oracle 資料表和檢視上插入、更新、刪除和選取作業

Microsoft BizTalk Adapter for Oracle Database 會在每個 Oracle 資料庫資料表和檢視上呈現一組標準作業。 藉由使用這些作業,您可以在目標資料表上執行由 WHERE 子句限定的簡單 SQL INSERT、UPDATE、SELECT 和 DELETE 子句, (或檢視) 。 這些作業也稱為資料操作語言 (DML) 作業。 若要執行更複雜的作業,例如使用 JOIN 運算子的 SQL SELECT 查詢,您可以使用 SQLEXECUTE 作業。 如需 SQLEXECUTE 作業的詳細資訊,請參閱 Oracle 資料庫中的 SQLEXECUTE 作業

下表顯示 Oracle 資料庫配接器支援的 DML 作業:

作業 描述
插入 在目標資料表或檢視表上執行 Insert 作業。 Insert 作業支援多個記錄或大量插入目標資料表或檢視:

- 多個記錄 插入作業會根據提供的記錄集,將資料列插入資料表或檢視中。

- 大量插入作業會根據提供的 SQL SELECT 查詢和資料行清單,將資料列插入資料表或檢視中。 查詢傳回的記錄會根據資料行清單插入目標資料表中。

Insert 作業的傳回值是插入的資料列數目。

注意: 多個記錄插入和大量插入都不能合併在相同的訊息中。

InlineValue

對於多個記錄 Insert 作業中的所有簡單資料記錄,您可以選擇為名為 InlineValue的選擇性屬性指定值來覆寫記錄的值。 InlineValue 屬性可用來將計算值插入資料表或檢視,例如使用序列填入主鍵資料行,或使用 SYSDATE 將系統日期插入 (,) 插入日期資料行。 例如,在下列 INSERT 語句中:

<Insert xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/ACCOUNTACTIVITY"> <RECORDSET> <ACCOUNTACTIVITYRECORDINSERT> <ACCOUNT>10001</ACCOUNT> <EMPNAME>John</EMPNAME> <AMOUNT>1500</AMOUNT> <TRANSDATE InlineValue="SYSDATE">2008-06-21T15:52:19</TRANSDATE> </ACCOUNTACTIVITYRECORDINSERT > </RECORDSET> </Insert>

即使 「2008-06-21T15:52:19」 指定為 TRANSDATE 資料行的值,但 InlineValue 屬性 「SYSDATE」 的值 (系統日期) 將會插入目標資料表中。

使用 InlineValue 屬性時:

- 避免使用 InlineValue 屬性的常數值。 例如,在 INSERT 語句中,如果您指定 <EMPNAME InlineValue="John"/> ,則會導致錯誤。 這是因為 InlineValue 屬性的值會依原樣傳遞至 Oracle,在此情況下 ,John 會傳遞至 Oracle 資料庫,這不是預期值 (預期值為 'John') 。 您必須在員工名稱周圍使用單引號。 例如:<EMPNAME InlineValue="’John’"/>

- 如果您想要使用 InlineValue 屬性的選取查詢,您必須以括弧括住 SELECT 語句,並確保選取查詢只會擷取單一記錄。 例如:<EMPNAME InlineValue="(SELECT NAME FROM MS_SAMPLE_EMPLOYEES WHERE ID=123)"/>

注意: 如果專案在 Oracle 資料庫中標示為 NOT Null,則即使您已指定內嵌值,您也必須指定該專案的值。 無法這樣做會導致架構驗證失敗。
選取 根據提供的資料行名稱清單和指定 SQL WHERE 子句的篩選字串,在目標資料表或檢視上執行 SQL SELECT 查詢。

Select 作業的傳回值是包含指定之資料行和資料列的強型別結果集。
更新 在目標資料表或檢視表上執行更新作業。 要更新的記錄是由指定 SQL WHERE 子句的篩選字串所指定。 更新的值會在範本記錄中指定。

Update 作業的傳回值是更新的資料列數目。
刪除 根據篩選字串中指定的 SQL WHERE 子句,在目標資料表或檢視上執行 Delete 作業。

Delete 作業的傳回值是已刪除的資料列數目。

如需下列詳細資訊︰

另請參閱

可以使用配接器執行哪些作業?