用于 Oracle 数据库的 Microsoft BizTalk 适配器显示 Oracle 数据库中每个表和视图的基本插入、更新、删除和选择作。 这些操作执行由 WHERE 子句限定的相应 SQL 语句。 Oracle 数据库适配器在这些操作中使用强类型记录和记录集。
基本表格操作的消息结构
下表显示了 Oracle 数据库适配器在 Oracle 数据库表上公开的基本表作的 XML 消息结构。 操作的目标表在消息动作中指定,并也显示在目标命名空间中。
插入
插入操作的类型如下。 消息只能包含一种插入操作。
- 多记录插入会将提供的强类型数据记录集插入到目标表中。
- 对于多条记录插入中的每个记录,可以为名为 InlineValue 的可选属性指定值。 如果指定,则覆盖元素的值。
- 大容量插入将由 QUERY 元素中指定的 SELECT 查询返回的记录集插入到目标表中。 这是通过使用COLUMN_NAMES元素中指定的列的逗号分隔列表来完成的。
XML 消息
插入多条记录
<Insert xmlns="[VERSION]/[SCHEMA]/Table/[TABLE_NAME]">   
<RECORDSET>     
<[TABLE_NAME]RECORDINSERT>       
<[FIELD1_NAME InlineValue="value"]>value1</[FIELD1_NAME]>       
<[FIELD2_NAME InlineValue="value"]>value2</[FIELD2_NAME]>       
…     
</[TABLE_NAME]RECORDINSERT>       
<[TABLE_NAME]RECORDINSERT >       
<[FIELD1_NAME InlineValue="value"]>value1</[FIELD1_NAME]>       
<[FIELD2_NAME InlineValue="value"]>value2</[FIELD2_NAME]>       
…     
</[TABLE_NAME]RECORDINSERT>     
…   
</RECORDSET> 
</Insert>
适配器执行的 SQL: INSERT INTO TABLE_NAME (FIELD1_NAME, FIELD2_NAME, …)VALUES (value1, value2, …);
批量插入
<Insert xmlns="[VERSION]/[SCHEMA]/Table/[TABLE_NAME]">
<COLUMN_NAMES>[COLUMN_list]</COLUMN_NAMES>
<QUERY>[SELECT_query]</QUERY>
</Insert>
适配器执行的 SQL: INSERT INTO TABLE_NAME (COLUMN_list) SELECT_query;
插入响应
插入的行数在 InsertResult 元素中返回。
XML 消息
<InsertResponse xmlns="[VERSION]/[SCHEMA]/Table/[TABLE_NAME]">   
<InsertResult>[rows inserted]</InsertResult> 
</InsertResponse>
选择
使用 FILTER 元素中指定的 WHERE 子句对目标表执行 SELECT 查询。 结果集包含在COLUMN_NAMES元素中指定的列名列表中的列,该列表以逗号分隔。
XML 消息
<Select xmlns="[VERSION]/[SCHEMA]/Table/[TABLE_NAME]">   
<COLUMN_NAMES>[COLUMN_list]</COLUMN_NAMES>   
<FILTER>WHERE_clause</FILTER> 
</Select>
适配器执行的 SQL: SELECT COLUMN_list FROM TABLE_NAME WHERE WHERE_clause;
选择响应
SELECT 查询生成的结果集。
XML 消息
<SelectResponse xmlns="[VERSION]/[SCHEMA]/Table/[TABLE_NAME]">   
<SelectResult>     
<[TABLE_NAME]RECORDSELECT>       
<[FIELD1_NAME]>value1</[FIELD1_NAME]>       
<[FIELD2_NAME]>value2</[FIELD2_NAME]>       
…     
</[TABLE_NAME]RECORDSELECT>   
</SelectResult> 
</SelectResponse>
更新
与 FILTER 元素中指定的 where 子句匹配的行将更新为 RECORDSET 中指定的值。 每个匹配行中只更新 RECORDSET 中所指定的列。
XML 消息
<Update xmlns="[VERSION]/[SCHEMA]/Table/[TABLE_NAME]">   
<RECORDSET>     
<[FIELD1_NAME]>value1</[FIELD1_NAME]>     
<[FIELD2_NAME]>value2</[FIELD2_NAME]>       
…   
</RECORDSET>   
<FILTER>WHERE_clause</FILTER> </Update>
适配器执行的 SQL: UPDATE [TABLE_NAME] SET [FIELD1_NAME] = value1, [FIELD2_NAME] = value2, … WHERE WHERE_clause;
更新响应
更新的行数在 UpdateResult 元素中返回。
XML 消息
<UpdateResponse xmlns="[VERSION]/[SCHEMA]/Table/[TABLE_NAME]">   
<UpdateResult>[rows inserted]</UpdateResult> 
</UpdateResponse>
删除
删除与 FILTER 元素指定的 WHERE 子句匹配的行。
XML 消息
<Delete xmlns="[VERSION]/[SCHEMA]/Table/[TABLE_NAME]">   
<FILTER>WHERE_clause</FILTER> 
</Delete>
适配器执行的 SQL: DELETE FROM [TABLE_NAME] WHERE WHERE_clause;
删除响应
删除的行数在 DeleteResult 元素中返回。
XML 消息
<DeleteResponse xmlns="[VERSION]/[SCHEMA]/Table/[TABLE_NAME]">   
<DeleteResult>[rows inserted]</DeleteResult> 
</DeleteResponse>
| 占位符值 | DESCRIPTION | 
|---|---|
| [VERSION] | 消息版本字符串;例如 http://Microsoft.LobServices.OracleDB/2007/03 | 
| [SCHEMA] | Oracle 项目的集合;例如 SCOTT | 
| [TABLE_NAME] | 表的名称;例如 EMP | 
| [FIELD1_NAME] | 表字段名称;例如 EMPNAME | 
| [COLUMN_list] | 以逗号分隔的列列表;例如 NAME | 
| [SELECT_query] | 在大容量插入操作的 QUERY 元素中指定的 SQL SELECT 语句;例如 SELECT * from MyTable | 
| [WHERE_clause] | WHERE_clause 用于某个操作的 SELECT 语句;例如 ID > 10 | 
重要
视图的基本表操作的消息结构与表的操作相同,但操作的命名空间指定为视图而非表:<Insert xmlns ="[VERSION]/[SCHEMA]/``View``/[VIEW_NAME]">。
基本表操作的消息动作
下表展示了 Oracle 数据库适配器用于基本表操作的消息操作。 Oracle 数据库适配器使用消息作中指定的表名来确定作的目标表。
| 操作 | 消息操作 | 示例: | 
|---|---|---|
| 插入 | [VERSION]/[SCHEMA]/Table/[TABLE_NAME]/Insert | http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/EMP/Insert | 
| 插入响应 | [VERSION]/[SCHEMA]/Table/[TABLE_NAME]/Insert/response | http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/EMP/Insert/response | 
| 选择 | [VERSION]/[SCHEMA]/Table/[TABLE_NAME]/Select | http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/EMP/Select | 
| 选择响应 | [VERSION]/[SCHEMA]/Table/[TABLE_NAME]/Select/response | http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/EMP/Select/response | 
| 更新 | [VERSION]/[SCHEMA]/Table/[TABLE_NAME]/Update | http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/EMP/Update | 
| 更新响应 | [VERSION]/[SCHEMA]/Table/[TABLE_NAME]/Update/response | http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/EMP/Update/response | 
| 删除 | [VERSION]/[SCHEMA]/Table/[TABLE_NAME]/删除 | http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/EMP/Delete | 
| 删除响应 | [VERSION]/[SCHEMA]/Table/[TABLE_NAME]/Delete/response | http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/EMP/Delete/response | 
[VERSION] = 消息版本字符串;例如, http://Microsoft.LobServices.OracleDB/2007/03.
[SCHEMA] = Oracle 数据库对象的集合;例如,SCOTT。
[TABLE_NAME] = 表的名称;例如,EMP。
重要
视图的操作消息与表的相同,不同之处在于“View”替换“Table”;例如,http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/``View``/EMPVIEW/Insert。