对表和视图进行基本插入、更新、删除和选择操作的消息架构

适用于 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>

Select

使用 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>
占位符值 说明
[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] 用于操作的 SELECT 语句的WHERE_clause;例如, 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
Select [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]/Delete 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。

重要

视图上的操作的消息操作与表的消息操作相同,只是“视图”替换了“Table”;例如 。 http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/``View``/EMPVIEW/Insert

另请参阅

Oracle 数据库的 BizTalk 适配器的消息和消息架构