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