对表和视图进行基本插入、更新、删除和选择操作的消息架构
适用于 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