表和视图的基本插入、更新、删除和查询操作的消息架构

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

另请参阅

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